diff options
author | Andreas Schwab <schwab@redhat.com> | 2010-06-11 11:04:11 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2010-06-11 14:38:34 +0200 |
commit | 16552c01a66633c9e412984d9d92616bd4e5303c (patch) | |
tree | f62caba6012c106913f2311ab7ceff0ab2ab1e30 | |
parent | 26f25ed8b41240e0268e2e4472a4dc4564ffe146 (diff) |
Properly set __libc_multiple_libcs
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | elf/dl-init.c | 4 | ||||
-rw-r--r-- | elf/dl-support.c | 2 | ||||
-rw-r--r-- | elf/rtld.c | 4 |
4 files changed, 7 insertions, 10 deletions
@@ -1,3 +1,10 @@ +2010-06-11 Andreas Schwab <schwab@redhat.com> + + * elf/rtld.c (_dl_starting_up): Always define. + (dl_main): Always set _dl_starting_up. + * elf/dl-support.c (_dl_starting_up): Always define. + * elf/dl-init.c (_dl_init): Always clear _dl_starting_up. + 2010-06-10 Andreas Schwab <schwab@redhat.com> * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE diff --git a/elf/dl-init.c b/elf/dl-init.c index e7b67570fd..a108529675 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -24,11 +24,9 @@ /* Type of the initializer. */ typedef void (*init_t) (int, char **, char **); -#ifndef HAVE_INLINED_SYSCALLS /* Flag, nonzero during startup phase. */ extern int _dl_starting_up; extern int _dl_starting_up_internal attribute_hidden; -#endif static void @@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env) while (i-- > 0) call_init (main_map->l_initfini[i], argc, argv, env); -#ifndef HAVE_INLINED_SYSCALLS /* Finished starting up. */ INTUSE(_dl_starting_up) = 0; -#endif } INTDEF (_dl_init) diff --git a/elf/dl-support.c b/elf/dl-support.c index f94d2c4c6e..e575cb42a1 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -80,10 +80,8 @@ unsigned long long _dl_load_adds; create a fake scope containing nothing. */ struct r_scope_elem _dl_initial_searchlist; -#ifndef HAVE_INLINED_SYSCALLS /* Nonzero during startup. */ int _dl_starting_up = 1; -#endif /* Random data provided by the kernel. */ void *_dl_random; diff --git a/elf/rtld.c b/elf/rtld.c index 90f3ff126e..80fe0ab35b 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -106,7 +106,6 @@ static struct audit_list struct audit_list *next; } *audit_list; -#ifndef HAVE_INLINED_SYSCALLS /* Set nonzero during loading and initialization of executable and libraries, cleared before the executable's entry point runs. This must not be initialized to nonzero, because the unused dynamic @@ -116,7 +115,6 @@ static struct audit_list never be called. */ int _dl_starting_up = 0; INTVARDEF(_dl_starting_up) -#endif /* This is the structure which defines all variables global to ld.so (except those which cannot be added for some reason). */ @@ -922,10 +920,8 @@ dl_main (const ElfW(Phdr) *phdr, /* Process the environment variable which control the behaviour. */ process_envvars (&mode); -#ifndef HAVE_INLINED_SYSCALLS /* Set up a flag which tells we are just starting. */ INTUSE(_dl_starting_up) = 1; -#endif if (*user_entry == (ElfW(Addr)) ENTRY_POINT) { |