diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-08-22 17:48:22 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-08-22 17:48:22 +0000 |
commit | 32b4fe6a63b7a95a8bdcd0d799a9de2106723790 (patch) | |
tree | 4b78730be20dc76f52f841805d64d391008db583 /sysdeps/generic | |
parent | ea83223c5cb7dbfbb37169baebf702484e79f014 (diff) | |
download | glibc-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')
-rw-r--r-- | sysdeps/generic/dl-osinfo.h | 1 | ||||
-rw-r--r-- | sysdeps/generic/dl-sysdep.c | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sysdeps/generic/dl-osinfo.h b/sysdeps/generic/dl-osinfo.h new file mode 100644 index 0000000000..b8e40d5a76 --- /dev/null +++ b/sysdeps/generic/dl-osinfo.h @@ -0,0 +1 @@ +/* Nothing needed in general. */ 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; } |