diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index f78a11a..4702e1c 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -91,11 +91,11 @@
   __pthread_internal_add(main_thread);
 }
 
-void __libc_init_common(KernelArgumentBlock& args) {
+void __libc_init_common() {
   // Initialize various globals.
-  environ = args.envp;
+  environ = __libc_shared_globals()->init_environ;
   errno = 0;
-  __progname = args.argv[0] ? args.argv[0] : "<unknown>";
+  __progname = __libc_shared_globals()->init_progname ?: "<unknown>";
 
 #if !defined(__LP64__)
   __check_max_thread_id();
@@ -294,7 +294,7 @@
 #endif
 }
 
-void __libc_init_AT_SECURE(KernelArgumentBlock& args) {
+void __libc_init_AT_SECURE(char** env) {
   // Check that the kernel provided a value for AT_SECURE.
   errno = 0;
   unsigned long is_AT_SECURE = getauxval(AT_SECURE);
@@ -305,11 +305,11 @@
     // https://www.freebsd.org/security/advisories/FreeBSD-SA-02:23.stdio.asc
     __nullify_closed_stdio();
 
-    __sanitize_environment_variables(args.envp);
+    __sanitize_environment_variables(env);
   }
 
   // Now the environment has been sanitized, make it available.
-  environ = args.envp;
+  environ = __libc_shared_globals()->init_environ = env;
 
   __initialize_personality();
 }
diff --git a/libc/bionic/libc_init_common.h b/libc/bionic/libc_init_common.h
index 6ce4d10..84b59ca 100644
--- a/libc/bionic/libc_init_common.h
+++ b/libc/bionic/libc_init_common.h
@@ -54,8 +54,8 @@
 
 __LIBC_HIDDEN__ void __libc_init_globals(KernelArgumentBlock& args);
 
-__LIBC_HIDDEN__ void __libc_init_common(KernelArgumentBlock& args);
+__LIBC_HIDDEN__ void __libc_init_common();
 
-__LIBC_HIDDEN__ void __libc_init_AT_SECURE(KernelArgumentBlock& args);
+__LIBC_HIDDEN__ void __libc_init_AT_SECURE(char** envp);
 
 #endif
diff --git a/libc/bionic/libc_init_dynamic.cpp b/libc/bionic/libc_init_dynamic.cpp
index 24f40ba..25d462f 100644
--- a/libc/bionic/libc_init_dynamic.cpp
+++ b/libc/bionic/libc_init_dynamic.cpp
@@ -85,7 +85,7 @@
 #endif
 
   __libc_init_globals(args);
-  __libc_init_common(args);
+  __libc_init_common();
 
   // Hooks for various libraries to let them know that we're starting up.
   __libc_globals.mutate(__libc_init_malloc);
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp
index f2168b8..51fbe07 100644
--- a/libc/bionic/libc_init_static.cpp
+++ b/libc/bionic/libc_init_static.cpp
@@ -96,14 +96,15 @@
   BIONIC_STOP_UNWIND;
 
   KernelArgumentBlock args(raw_args);
+  __libc_shared_globals()->init_progname = args.argv[0];
 
   // Initializing the globals requires TLS to be available for errno.
   __libc_init_main_thread(args);
 
   __libc_init_globals(args);
 
-  __libc_init_AT_SECURE(args);
-  __libc_init_common(args);
+  __libc_init_AT_SECURE(args.envp);
+  __libc_init_common();
 
   apply_gnu_relro();
 
diff --git a/libc/private/bionic_globals.h b/libc/private/bionic_globals.h
index e9eaee0..906d569 100644
--- a/libc/private/bionic_globals.h
+++ b/libc/private/bionic_globals.h
@@ -58,6 +58,10 @@
 
   pthread_mutex_t abort_msg_lock;
   abort_msg_t* abort_msg;
+
+  // Values passed from the linker to libc.so.
+  const char* init_progname;
+  char** init_environ;
 };
 
 __LIBC_HIDDEN__ libc_shared_globals* __libc_shared_globals();
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index 442ecd9..7edfd54 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -290,7 +290,7 @@
 #endif
 
   // Sanitize the environment.
-  __libc_init_AT_SECURE(args);
+  __libc_init_AT_SECURE(args.envp);
 
   // Initialize system properties
   __system_properties_init(); // may use 'environ'
@@ -655,6 +655,7 @@
   g_argc = args.argc - __libc_shared_globals()->initial_linker_arg_count;
   g_argv = args.argv + __libc_shared_globals()->initial_linker_arg_count;
   g_envp = args.envp;
+  __libc_shared_globals()->init_progname = g_argv[0];
 
   // Initialize static variables. Note that in order to
   // get correct libdl_info we need to call constructors
diff --git a/tests/dl_test.cpp b/tests/dl_test.cpp
index 18ba011..57d04e9 100644
--- a/tests/dl_test.cpp
+++ b/tests/dl_test.cpp
@@ -104,6 +104,7 @@
   std::string expected_output =
       "ctor: argc=1 argv[0]=" + helper + "\n" +
       "main: argc=1 argv[0]=" + helper + "\n" +
+      "__progname=" + helper + "\n" +
       "helper_func called\n";
   ExecTestHelper eth;
   eth.SetArgs({ kPathToLinker, helper.c_str(), nullptr });
@@ -118,6 +119,7 @@
   std::string expected_output =
       "ctor: argc=1 argv[0]=" + helper + "\n" +
       "main: argc=1 argv[0]=" + helper + "\n" +
+      "__progname=" + helper + "\n" +
       "helper_func called\n";
   ExecTestHelper eth;
   eth.SetArgs({ kPathToLinker, helper.c_str(), nullptr });
diff --git a/tests/libs/exec_linker_helper.cpp b/tests/libs/exec_linker_helper.cpp
index 01a61e0..56b1eaf 100644
--- a/tests/libs/exec_linker_helper.cpp
+++ b/tests/libs/exec_linker_helper.cpp
@@ -28,7 +28,8 @@
 
 #include <stdio.h>
 
-extern "C" void _start();
+extern "C" const char* __progname;
+
 const char* helper_func();
 
 __attribute__((constructor))
@@ -38,6 +39,7 @@
 
 int main(int argc, char* argv[]) {
   printf("main: argc=%d argv[0]=%s\n", argc, argv[0]);
+  printf("__progname=%s\n", __progname);
   printf("%s\n", helper_func());
   return 0;
 }
