libcinit.cpp 692 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. bool s_global_initializers_ran;
  20. void* __auxiliary_vector;
  21. static void __auxiliary_vector_init();
  22. void __libc_init()
  23. {
  24. __auxiliary_vector_init();
  25. __malloc_init();
  26. __stdio_init();
  27. }
  28. static void __auxiliary_vector_init()
  29. {
  30. char** env;
  31. for (env = environ; *env; ++env) {
  32. }
  33. __auxiliary_vector = (void*)++env;
  34. }
  35. }