From e4a5f77de683578d85fe7621ebdaee76dd3df89c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 7 Jan 2001 02:00:21 +0000 Subject: Update. 2001-01-05 H.J. Lu * elf/dl-support.c (non_dynamic_init): Move the auxiliary vector checking to ... (_dl_aux_init): Here. New function. Defined only if HAVE_AUX_VECTOR is defined. * sysdeps/generic/libc-start.c (__libc_start_main): Call _dl_aux_init for static binaries if HAVE_AUX_VECTOR is defined. * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): Call _dl_aux_init. * sysdeps/unix/sysv/linux/ldsodefs.h (DL_FIND_AUXV): Removed. (HAVE_AUX_VECTOR): Defined. (_dl_aux_init): Declared. --- sysdeps/generic/libc-start.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c index c4b8bc6..fa394b4 100644 --- a/sysdeps/generic/libc-start.c +++ b/sysdeps/generic/libc-start.c @@ -59,6 +59,10 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **), #endif #ifndef SHARED +# ifdef HAVE_AUX_VECTOR + void *__unbounded *__unbounded auxvec; +# endif + /* The next variable is only here to work around a bug in gcc <= 2.7.2.2. If the address would be taken inside the expression the optimizer would try to be too smart and throws it away. Grrr. */ @@ -85,6 +89,13 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **), loader did the work already. */ if (__builtin_expect (__libc_enable_secure, 0)) __libc_check_standard_fds (); + +# ifdef HAVE_AUX_VECTOR + for (auxvec = (void *__unbounded *__unbounded) ubp_ev; + *auxvec; auxvec++); + ++auxvec; + _dl_aux_init ((ElfW(auxv_t) *) auxvec); +# endif #endif /* Register the destructor of the dynamic linker if there is any. */ -- cgit v1.1