1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Update sysvipc kernel-features.h files for Linux 5.1

Linux 5.1 adds missing SySV IPC syscalls to the syscall table for
remanining one that still uses the ipc syscall on glibc (m68k, mips-o32,
powerpc, s390, sh, and sparc32).  However the newly added direct ipc
syscall are different than the old ones:

  1. They do not expect IPC_64, meaning __IPC_64 should be set to zero
     when new syscalls are used.  And new syscalls can not be used
     for compat functions like __old_semctl (to emulated old sysvipc it
     requires to use the old __NR_ipc syscall without __IPC_64).
     Thus IPC_64 is redefined for newer kernels on affected ABIs.

  2. semtimedop and semop does not exist on 32-bit ABIs (only
     semtimedop_time64 is supplied).  The provided syscall wrappers only
     uses the wire-up syscall if __NR_semtimedop and __NR_semop are
     also defined.

Checked on x86_64-linux-gnu and i686-linux-gnu on both a 4.15 kernel
configure with default options and sysvipc tests on a 5.3.0 kernel with
--enable-kernel=5.1.

Tested-by: Paul A. Clarke <pc@us.ibm.com>
This commit is contained in:
Adhemerval Zanella
2019-05-20 12:17:46 -03:00
parent 2901743568
commit 720e9541f5
11 changed files with 57 additions and 27 deletions

View File

@ -58,10 +58,12 @@
# undef __NR_pause
#endif
/* sparc only supports ipc syscall. */
#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
#ifndef __arch64__
# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
/* sparc only supports ipc syscall before 5.1. */
#if __LINUX_KERNEL_VERSION < 0x050100
# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
# if !defined __arch64__
# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
# endif
#endif
/* Support for the renameat2 syscall was added in 3.16. */