From 7688db9129490d0f31f4e05f3d439b9423d63aa9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 31 Mar 2000 07:24:09 +0000 Subject: [PATCH] Update. * elf/dl-init.c (_dl_init): Clear _dl_starting_up at end of with size of dynamic sectionfunction. * sysdeps/i386/dl-machine.h: Remove code to clear _dl_starting_up. * misc/sys/cdefs.h: Don't allow gcc in traditional mode to be with size of dynamic sectionused. --- ChangeLog | 7 +++++++ elf/dl-init.c | 6 ++++++ misc/sys/cdefs.h | 9 ++++++++- sysdeps/i386/dl-machine.h | 3 --- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 38d9b02..81d6c2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2000-03-30 Ulrich Drepper + * elf/dl-init.c (_dl_init): Clear _dl_starting_up at end of + with size of dynamic sectionfunction. + * sysdeps/i386/dl-machine.h: Remove code to clear _dl_starting_up. + + * misc/sys/cdefs.h: Don't allow gcc in traditional mode to be + with size of dynamic sectionused. + * elf/Makefile (dl-routines): Remove preinit. * elf/Versions: Remove _dl_preinit. * elf/dl-preinit.c: Removed. Move content into... diff --git a/elf/dl-init.c b/elf/dl-init.c index 2c1c24c..911e089 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -24,6 +24,9 @@ /* Type of the initializer. */ typedef void (*init_t) (int, char **, char **); +/* Flag, nonzero during startup phase. */ +extern int _dl_starting_up; + void internal_function @@ -127,4 +130,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env) /* Notify the debugger all new objects are now ready to go. */ r->r_state = RT_CONSISTENT; _dl_debug_state (); + + /* Finished starting up. */ + _dl_starting_up = 0; } diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 36510ef..5880fe9 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -21,7 +21,14 @@ /* We are almost always included from features.h. */ #ifndef _FEATURES_H -#include +# include +#endif + +/* The GNU libc does not support any K&R compilers or the traditional mode + of ISO C compilers anymore. Check for some of the combinations not + anymore supported. */ +#if defined __GNUC__ && !defined __STDC__ +# error "You need a ISO C conforming compiler to use the glibc headers" #endif /* Some user header file might have defined this before. */ diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 2680b05..74f2eb3 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -233,9 +233,6 @@ _dl_start_user:\n\ call _dl_init@PLT\n\ # Push argc back on the stack.\n\ push %esi\n\ - # Clear the startup flag.\n\ - movl _dl_starting_up@GOT(%ebx), %eax\n\ - movl $0, (%eax)\n\ # Pass our finalizer function to the user in %edx, as per ELF ABI.\n\ movl _dl_fini@GOT(%ebx), %edx\n\ # Jump to the user's entry point.\n\ -- 2.7.4