From e7c8ff38394e76251d4dbef49fa6e7453fded62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Holz?= Date: Sat, 23 Sep 2023 14:38:25 +0200 Subject: [PATCH] LibC: Clean up crt0 We already set these variables and call `_init` in the dynamic linker. As we don't care about static binaries, remove these assignments and the call to `_init` from `_entry`. The function referenced by DT_INIT is also not necessarily called `_init`, so directly calling `_init` is not really correct. `s_global_initializers_ran` and `__stack_chk_guard` are unused, so remove them. --- Userland/Libraries/LibC/crt0.cpp | 13 ++----------- Userland/Libraries/LibC/libcinit.cpp | 1 - 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/Userland/Libraries/LibC/crt0.cpp b/Userland/Libraries/LibC/crt0.cpp index 2f2523a1a9..fc7024b3ea 100644 --- a/Userland/Libraries/LibC/crt0.cpp +++ b/Userland/Libraries/LibC/crt0.cpp @@ -14,13 +14,10 @@ #ifndef _DYNAMIC_LOADER extern "C" { -extern uintptr_t __stack_chk_guard; -extern bool s_global_initializers_ran; - int main(int, char**, char**); // Tell the compiler that this may be called from somewhere else. -int _entry(int argc, char** argv, char** env) __attribute__((used)); +int _entry(int argc, char** argv) __attribute__((used)); void _start(int, char**, char**) __attribute__((used)); NAKED void _start(int, char**, char**) @@ -37,16 +34,10 @@ NAKED void _start(int, char**, char**) # endif } -int _entry(int argc, char** argv, char** env) +int _entry(int argc, char** argv) { - environ = env; - __environ_is_malloced = false; __begin_atexit_locking(); - s_global_initializers_ran = true; - - _init(); - int status = main(argc, argv, environ); exit(status); diff --git a/Userland/Libraries/LibC/libcinit.cpp b/Userland/Libraries/LibC/libcinit.cpp index aeed350bec..e1024acfd9 100644 --- a/Userland/Libraries/LibC/libcinit.cpp +++ b/Userland/Libraries/LibC/libcinit.cpp @@ -20,7 +20,6 @@ __thread int errno_storage; char** environ; bool __environ_is_malloced; bool __stdio_is_initialized; -bool s_global_initializers_ran; void* __auxiliary_vector; static void __auxiliary_vector_init();