mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Remove some pre-2.6.0 Linux kernel conditionals.
This commit is contained in:
parent
4f75b7a09a
commit
85fe199795
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
|||||||
|
2012-08-03 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_SECURE):
|
||||||
|
Remove.
|
||||||
|
(__ASSUME_CORRECT_SI_PID): Likewise.
|
||||||
|
(__ASSUME_BRK_PAGE_ROUNDED): Likewise.
|
||||||
|
(__ASSUME_TMPFS_NAME): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/dl-sysdep.c (frob_brk)
|
||||||
|
[!__ASSUME_BRK_PAGE_ROUNDED]: Remove conditional code.
|
||||||
|
* sysdeps/unix/sysv/linux/ldsodefs.h [__ASSUME_AT_SECURE]
|
||||||
|
(HAVE_AUX_SECURE): Make definition unconditional.
|
||||||
|
* sysdeps/unix/sysv/linux/shm_open.c (where_is_shmfs)
|
||||||
|
[!__ASSUME_TMPFS_NAME]: Remove conditional code.
|
||||||
|
|
||||||
2012-08-03 Roland McGrath <roland@hack.frob.com>
|
2012-08-03 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* sysdeps/mach/hurd/sys/param.h (MAXSYMLINKS): Macro removed.
|
* sysdeps/mach/hurd/sys/param.h (MAXSYMLINKS): Macro removed.
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2012-08-03 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* nptl-init.c (sigcancel_handler) [__ASSUME_CORRECT_SI_PID]: Make
|
||||||
|
code unconditional.
|
||||||
|
(sighandler_setxid) [__ASSUME_CORRECT_SI_PID]: Likewise.
|
||||||
|
|
||||||
2012-07-28 Siddhesh Poyarekar <siddhesh@redhat.com>
|
2012-07-28 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
* tst-pthread-getattr.c (MAX_STACK_SIZE): New macro.
|
* tst-pthread-getattr.c (MAX_STACK_SIZE): New macro.
|
||||||
|
@ -172,24 +172,18 @@ __nptl_set_robust (struct pthread *self)
|
|||||||
static void
|
static void
|
||||||
sigcancel_handler (int sig, siginfo_t *si, void *ctx)
|
sigcancel_handler (int sig, siginfo_t *si, void *ctx)
|
||||||
{
|
{
|
||||||
#ifdef __ASSUME_CORRECT_SI_PID
|
|
||||||
/* Determine the process ID. It might be negative if the thread is
|
/* Determine the process ID. It might be negative if the thread is
|
||||||
in the middle of a fork() call. */
|
in the middle of a fork() call. */
|
||||||
pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
|
pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
|
||||||
if (__builtin_expect (pid < 0, 0))
|
if (__builtin_expect (pid < 0, 0))
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Safety check. It would be possible to call this function for
|
/* Safety check. It would be possible to call this function for
|
||||||
other signals and send a signal from another process. This is not
|
other signals and send a signal from another process. This is not
|
||||||
correct and might even be a security problem. Try to catch as
|
correct and might even be a security problem. Try to catch as
|
||||||
many incorrect invocations as possible. */
|
many incorrect invocations as possible. */
|
||||||
if (sig != SIGCANCEL
|
if (sig != SIGCANCEL
|
||||||
#ifdef __ASSUME_CORRECT_SI_PID
|
|
||||||
/* Kernels before 2.5.75 stored the thread ID and not the process
|
|
||||||
ID in si_pid so we skip this test. */
|
|
||||||
|| si->si_pid != pid
|
|| si->si_pid != pid
|
||||||
#endif
|
|
||||||
|| si->si_code != SI_TKILL)
|
|| si->si_code != SI_TKILL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -235,24 +229,18 @@ struct xid_command *__xidcmd attribute_hidden;
|
|||||||
static void
|
static void
|
||||||
sighandler_setxid (int sig, siginfo_t *si, void *ctx)
|
sighandler_setxid (int sig, siginfo_t *si, void *ctx)
|
||||||
{
|
{
|
||||||
#ifdef __ASSUME_CORRECT_SI_PID
|
|
||||||
/* Determine the process ID. It might be negative if the thread is
|
/* Determine the process ID. It might be negative if the thread is
|
||||||
in the middle of a fork() call. */
|
in the middle of a fork() call. */
|
||||||
pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
|
pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
|
||||||
if (__builtin_expect (pid < 0, 0))
|
if (__builtin_expect (pid < 0, 0))
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Safety check. It would be possible to call this function for
|
/* Safety check. It would be possible to call this function for
|
||||||
other signals and send a signal from another process. This is not
|
other signals and send a signal from another process. This is not
|
||||||
correct and might even be a security problem. Try to catch as
|
correct and might even be a security problem. Try to catch as
|
||||||
many incorrect invocations as possible. */
|
many incorrect invocations as possible. */
|
||||||
if (sig != SIGSETXID
|
if (sig != SIGSETXID
|
||||||
#ifdef __ASSUME_CORRECT_SI_PID
|
|
||||||
/* Kernels before 2.5.75 stored the thread ID and not the process
|
|
||||||
ID in si_pid so we skip this test. */
|
|
||||||
|| si->si_pid != pid
|
|| si->si_pid != pid
|
||||||
#endif
|
|
||||||
|| si->si_code != SI_TKILL)
|
|| si->si_code != SI_TKILL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Dynamic linker system dependencies for Linux.
|
/* Dynamic linker system dependencies for Linux.
|
||||||
Copyright (C) 1995,1997,2001,2004,2005,2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 1995-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -33,27 +33,6 @@ static inline void
|
|||||||
frob_brk (void)
|
frob_brk (void)
|
||||||
{
|
{
|
||||||
__brk (0); /* Initialize the break. */
|
__brk (0); /* Initialize the break. */
|
||||||
|
|
||||||
#if ! __ASSUME_BRK_PAGE_ROUNDED
|
|
||||||
/* If the dynamic linker was executed as a program, then the break may
|
|
||||||
start immediately after our data segment. However, dl-minimal.c has
|
|
||||||
already stolen the remainder of the page for internal allocations.
|
|
||||||
If we don't adjust the break location recorded by the kernel, the
|
|
||||||
normal program startup will inquire, find the value at our &_end,
|
|
||||||
and start allocating its own data there, clobbering dynamic linker
|
|
||||||
data structures allocated there during startup.
|
|
||||||
|
|
||||||
Later Linux kernels have changed this behavior so that the initial
|
|
||||||
break value is rounded up to the page boundary before we start. */
|
|
||||||
|
|
||||||
extern char *__curbrk attribute_hidden;
|
|
||||||
extern char _end[] attribute_hidden;
|
|
||||||
char *const endpage = (void *) 0 + (((__curbrk - (char *) 0)
|
|
||||||
+ GLRO(dl_pagesize) - 1)
|
|
||||||
& -GLRO(dl_pagesize));
|
|
||||||
if (__builtin_expect (__curbrk >= _end && __curbrk < endpage, 0))
|
|
||||||
__brk (endpage);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# include <elf/dl-sysdep.c>
|
# include <elf/dl-sysdep.c>
|
||||||
|
@ -115,15 +115,6 @@
|
|||||||
/* The statfs64 syscalls are available in 2.5.74 (but not for alpha). */
|
/* The statfs64 syscalls are available in 2.5.74 (but not for alpha). */
|
||||||
#define __ASSUME_STATFS64 1
|
#define __ASSUME_STATFS64 1
|
||||||
|
|
||||||
/* Starting with at least 2.5.74 the kernel passes the setuid-like exec
|
|
||||||
flag unconditionally up to the child. */
|
|
||||||
#define __ASSUME_AT_SECURE 1
|
|
||||||
|
|
||||||
/* Starting with the 2.5.75 kernel the kernel fills in the correct value
|
|
||||||
in the si_pid field passed as part of the siginfo_t struct to signal
|
|
||||||
handlers. */
|
|
||||||
#define __ASSUME_CORRECT_SI_PID 1
|
|
||||||
|
|
||||||
/* The tgkill syscall was instroduced for i386 in 2.5.75. On x86-64,
|
/* The tgkill syscall was instroduced for i386 in 2.5.75. On x86-64,
|
||||||
sparc, SH, ppc, and ppc64 it was introduced in 2.6.0-test3. */
|
sparc, SH, ppc, and ppc64 it was introduced in 2.6.0-test3. */
|
||||||
#if defined __i386__ \
|
#if defined __i386__ \
|
||||||
@ -189,10 +180,6 @@
|
|||||||
# define __ASSUME_GETDENTS32_D_TYPE 1
|
# define __ASSUME_GETDENTS32_D_TYPE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Starting with version 2.5.3, the initial location returned by `brk'
|
|
||||||
after exec is always rounded up to the next page. */
|
|
||||||
#define __ASSUME_BRK_PAGE_ROUNDED 1
|
|
||||||
|
|
||||||
/* Starting with version 2.6.9, the waitid system call is available.
|
/* Starting with version 2.6.9, the waitid system call is available.
|
||||||
Except for powerpc{,64} and s390{,x}, where it is available in 2.6.12. */
|
Except for powerpc{,64} and s390{,x}, where it is available in 2.6.12. */
|
||||||
#if (__LINUX_KERNEL_VERSION >= 0x020609 \
|
#if (__LINUX_KERNEL_VERSION >= 0x020609 \
|
||||||
@ -208,11 +195,6 @@
|
|||||||
# define __ASSUME_STAT64_SYSCALL 1
|
# define __ASSUME_STAT64_SYSCALL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Early kernel used "shm" as the filesystem name for the filesystem used
|
|
||||||
for shm_open etc. Later it is "tmpfs". 2.4.20 is a safe bet for the
|
|
||||||
cutover. */
|
|
||||||
#define __ASSUME_TMPFS_NAME 1
|
|
||||||
|
|
||||||
/* pselect/ppoll were introduced just after 2.6.16-rc1. Due to the way
|
/* pselect/ppoll were introduced just after 2.6.16-rc1. Due to the way
|
||||||
the kernel versions are advertised we can only rely on 2.6.17 to have
|
the kernel versions are advertised we can only rely on 2.6.17 to have
|
||||||
the code. On x86_64 and SH this appeared first in 2.6.19-rc1,
|
the code. On x86_64 and SH this appeared first in 2.6.19-rc1,
|
||||||
|
@ -41,9 +41,7 @@ extern void _dl_non_dynamic_init (void) internal_function;
|
|||||||
|
|
||||||
/* We can assume that the kernel always provides the AT_SECURE value
|
/* We can assume that the kernel always provides the AT_SECURE value
|
||||||
in the auxiliary vector from 2.5.74 or so on. */
|
in the auxiliary vector from 2.5.74 or so on. */
|
||||||
#if __ASSUME_AT_SECURE
|
#define HAVE_AUX_SECURE
|
||||||
# define HAVE_AUX_SECURE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
|
/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
|
||||||
up the page size information. */
|
up the page size information. */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2000-2004,2006,2007 Free Software Foundation, Inc.
|
/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -86,11 +86,7 @@ where_is_shmfs (void)
|
|||||||
while ((mp = __getmntent_r (fp, &resmem, buf, sizeof buf)) != NULL)
|
while ((mp = __getmntent_r (fp, &resmem, buf, sizeof buf)) != NULL)
|
||||||
/* The original name is "shm" but this got changed in early Linux
|
/* The original name is "shm" but this got changed in early Linux
|
||||||
2.4.x to "tmpfs". */
|
2.4.x to "tmpfs". */
|
||||||
if (strcmp (mp->mnt_type, "tmpfs") == 0
|
if (strcmp (mp->mnt_type, "tmpfs") == 0)
|
||||||
#ifndef __ASSUME_TMPFS_NAME
|
|
||||||
|| strcmp (mp->mnt_type, "shm") == 0
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/* Found it. There might be more than one place where the
|
/* Found it. There might be more than one place where the
|
||||||
filesystem is mounted but one is enough for us. */
|
filesystem is mounted but one is enough for us. */
|
||||||
|
Loading…
Reference in New Issue
Block a user