From 4e56fdbce36cc1d2bbd853589809b4f7ad634fc3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 19 Jan 2001 05:16:45 +0000 Subject: 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. --- sysdeps/unix/sysv/linux/kernel-features.h | 8 +++++++- sysdeps/unix/sysv/linux/ldsodefs.h | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'sysdeps/unix/sysv') 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 @@ -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 */ -- cgit 1.4.1