about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/generic/dl-sysdep.c8
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h5
2 files changed, 9 insertions, 4 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index c081269bb0..889a216d4a 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -138,6 +138,10 @@ _dl_sysdep_start (void **start_argptr,
 	break;
       }
 
+#ifdef DL_SYSDEP_OSCHECK
+  DL_SYSDEP_OSCHECK (dl_fatal);
+#endif
+
   /* Linux doesn't provide us with any of these values on the stack
      when the dynamic linker is run directly as a program.  */
 
@@ -178,10 +182,6 @@ _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;
 }
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index 00a6caeaa6..f327161b7a 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -19,6 +19,11 @@
 
 #include <sys/sysctl.h>
 
+/* There is no prototype for __sysctl in that file.  */
+extern int __sysctl (int *name, int nlen, void *oldval,
+		     size_t *oldlenp, void *newval, size_t newlen);
+
+
 #ifdef SHARED
 /* This is the function used in the dynamic linker to print the fatal error
    message.  */