libcinit.cpp 660 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/Types.h>
  7. #include <assert.h>
  8. #include <sys/internals.h>
  9. #include <unistd.h>
  10. extern "C" {
  11. #ifdef NO_TLS
  12. int errno;
  13. #else
  14. __thread int errno;
  15. #endif
  16. char** environ;
  17. bool __environ_is_malloced;
  18. bool __stdio_is_initialized;
  19. void* __auxiliary_vector;
  20. static void __auxiliary_vector_init();
  21. void __libc_init()
  22. {
  23. __auxiliary_vector_init();
  24. __malloc_init();
  25. __stdio_init();
  26. }
  27. static void __auxiliary_vector_init()
  28. {
  29. char** env;
  30. for (env = environ; *env; ++env) {
  31. }
  32. __auxiliary_vector = (void*)++env;
  33. }
  34. }