aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-03-31 07:24:09 +0000
committerUlrich Drepper <drepper@redhat.com>2000-03-31 07:24:09 +0000
commit7688db9129490d0f31f4e05f3d439b9423d63aa9 (patch)
tree4a614ac65f307b55f5719cc9496b703ca4147608
parent758cb061078ffcd3435cdcd69efe289e6e97d3a7 (diff)
downloadglibc-7688db9129490d0f31f4e05f3d439b9423d63aa9.zip
glibc-7688db9129490d0f31f4e05f3d439b9423d63aa9.tar.gz
glibc-7688db9129490d0f31f4e05f3d439b9423d63aa9.tar.bz2
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.
-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 38d9b02..81d6c2d 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 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 <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 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\