about summary refs log tree commit diff
path: root/sysdeps/generic/dl-sysdep.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-22 17:48:22 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-22 17:48:22 +0000
commit32b4fe6a63b7a95a8bdcd0d799a9de2106723790 (patch)
tree4b78730be20dc76f52f841805d64d391008db583 /sysdeps/generic/dl-sysdep.c
parentea83223c5cb7dbfbb37169baebf702484e79f014 (diff)
downloadglibc-32b4fe6a63b7a95a8bdcd0d799a9de2106723790.tar.gz
glibc-32b4fe6a63b7a95a8bdcd0d799a9de2106723790.tar.xz
glibc-32b4fe6a63b7a95a8bdcd0d799a9de2106723790.zip
Update.
	* elf/Makefile (distribute): Add dl-osinfo.h.
	* sysdeps/generic/dl-osinfo.h: New file.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: New file.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Use DL_SYSDEP_OSCHECK
	if defined.
	* sysdeps/unix/sysv/linux/init-first.c: Perform kernel version test
	only for !SHARED case.  Get the code from dl-osinfo.h.
Diffstat (limited to 'sysdeps/generic/dl-sysdep.c')
-rw-r--r--sysdeps/generic/dl-sysdep.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index 1b00775d72..c081269bb0 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -33,6 +33,7 @@
 #include <entry.h>
 #include <dl-machine.h>
 #include <dl-procinfo.h>
+#include <dl-osinfo.h>
 
 extern int _dl_argc;
 extern char **_dl_argv;
@@ -59,7 +60,7 @@ unsigned long int _dl_hwcap_mask = HWCAP_IMPORTANT;
 
 
 #ifndef DL_FIND_ARG_COMPONENTS
-#define DL_FIND_ARG_COMPONENTS(cookie, argc, argv, envp, auxp)	\
+# define DL_FIND_ARG_COMPONENTS(cookie, argc, argv, envp, auxp)	\
   do {								\
     void **_tmp;						\
     (argc) = *(long *) cookie;					\
@@ -87,7 +88,8 @@ _dl_sysdep_start (void **start_argptr,
   gid_t egid = 0;
   unsigned int seen;
 
-  DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, _dl_argv, _environ, _dl_auxv);
+  DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, _dl_argv, _environ,
+			  _dl_auxv);
 
   user_entry = (ElfW(Addr)) &ENTRY_POINT;
   _dl_platform = NULL; /* Default to nothing known about the platform.  */
@@ -176,6 +178,10 @@ _dl_sysdep_start (void **start_argptr,
   if (__builtin_expect (__libc_enable_secure, 0))
     __libc_check_standard_fds ();
 
+#ifdef DL_SYSDEP_OSCHECK
+  DL_SYSDEP_OSCHECK (dl_fatal);
+#endif
+
   (*dl_main) (phdr, phnum, &user_entry);
   return user_entry;
 }