about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--elf/dl-init.c6
-rw-r--r--misc/sys/cdefs.h9
-rw-r--r--sysdeps/i386/dl-machine.h3
4 files changed, 21 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 38d9b02262..81d6c2dc8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2000-03-30  Ulrich Drepper  <drepper@redhat.com>
 
+	* 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 2c1c24ca54..911e089912 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 36510effe1..5880fe9c5e 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 <features.h>
+# include <features.h>
+#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 2680b05a6c..74f2eb3448 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\