aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.google5
-rw-r--r--csu/elf-init.c12
-rw-r--r--elf/dl-support.c3
3 files changed, 8 insertions, 12 deletions
diff --git a/README.google b/README.google
index 775e6b8..c9c9f96 100644
--- a/README.google
+++ b/README.google
@@ -374,3 +374,8 @@ sysdeps/x86_64/start.S
and initialize __google_auxv in __libc_csu_init instead.
(ppluzhnikov, google-local)
+csu/elf-init.c
+elf/dl-support.c
+ For b/15780211, revert local change to csu/elf-init.c and move
+ initialization of __google_auxv earlier (in the fully-static link).
+ (ppluzhnikov, google-local)
diff --git a/csu/elf-init.c b/csu/elf-init.c
index d064d69..5a7aa2c 100644
--- a/csu/elf-init.c
+++ b/csu/elf-init.c
@@ -79,18 +79,6 @@ __libc_csu_init (int argc, char **argv, char **envp)
for (i = 0; i < size; i++)
(*__preinit_array_start [i]) (argc, argv, envp);
}
-
- extern ElfW(auxv_t) *__google_auxv; /* Defined in dl-init.c */
- /* _dl_init() is never called for fully-static binary.
- Initialize __google_auxv here. */
- if (__google_auxv == NULL)
- {
- char **e;
-
- for (e = envp; *e; ++e) /* Skip. */;
- __google_auxv = (ElfW(auxv_t) *) ++e;
- }
-
#endif
#ifndef NO_INITFINI
diff --git a/elf/dl-support.c b/elf/dl-support.c
index a794a7d..c3082ea 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -245,6 +245,9 @@ _dl_aux_init (ElfW(auxv_t) *av)
uid_t uid = 0;
gid_t gid = 0;
+ extern ElfW(auxv_t) *__google_auxv;
+ __google_auxv = av;
+
_dl_auxv = av;
for (; av->a_type != AT_NULL; ++av)
switch (av->a_type)