about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-19 05:16:45 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-19 05:16:45 +0000
commit4e56fdbce36cc1d2bbd853589809b4f7ad634fc3 (patch)
treecf7bbf7f8f1d362358cd356a5a6e8917bdedfd89 /sysdeps/unix
parent5287b1d872e7aaade168b1848322cd513bebfabf (diff)
downloadglibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.tar.gz
glibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.tar.xz
glibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.zip
Update.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): If HAVE_AUX_XID is
	defined don't look whether the AT_*ID values were set.
	If HAVE_AUX_PAGESIZE is defined don't look whether the pagesize is set.
	(_dl_show_auxv): Rewrite to avoid switch statement.
	* sysdeps/unix/sysv/linux/kernel-features.h: Define
	__ASSUME_AT_PAGESIZE for kernel >= 2.4.1.
	* sysdeps/unix/sysv/linux/ldsodefs.h: Define HAVE_AUX_XID.
	Define HAVE_AUX_PAGESIZE if __ASSUME_AT_PAGESIZE is defined.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h8
-rw-r--r--sysdeps/unix/sysv/linux/ldsodefs.h12
2 files changed, 19 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 563a7e911e..bbbae67839 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -1,6 +1,6 @@
 /* Set flags signalling availability of kernel features based on given
    kernel version number.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -157,3 +157,9 @@
 #if __LINUX_KERNEL_VERSION >= 131939
 # define __ASSUME_O_DIRECTORY	1
 #endif
+
+/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
+   up the page size information.  */
+#if __LINUX_KERNEL_VERSION >= 132097
+# define __ASSUME_AT_PAGESIZE	1
+#endif
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h
index 1bfe6c38af..b495e555c0 100644
--- a/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -19,6 +19,8 @@
 
 #ifndef	_LDSODEFS_H
 
+#include "kernel-features.h"
+
 /* Get the real definitions.  */
 #include_next <ldsodefs.h>
 
@@ -30,4 +32,14 @@
 /* Used by static binaries to check the auxiliary vector.  */
 extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function;
 
+/* We can assume that the kernel always provides the AT_UID, AT_EUID,
+   AT_GID, and AT_EGID values in the auxiliary vector.  */
+#define HAVE_AUX_XID
+
+/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
+   up the page size information.  */
+#if __ASSUME_AT_PAGESIZE
+# define HAVE_AUX_PAGESIZE
+#endif
+
 #endif /* ldsodefs.h */