aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv
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/sysv
parent5287b1d872e7aaade168b1848322cd513bebfabf (diff)
downloadglibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.tar
glibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.tar.gz
glibc-4e56fdbce36cc1d2bbd853589809b4f7ad634fc3.tar.bz2
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/sysv')
-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 */