public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] Deleted branch azanella/bz18231
@ 2019-10-11 19:22 Adhemerval Zanella
0 siblings, 0 replies; 3+ messages in thread
From: Adhemerval Zanella @ 2019-10-11 19:22 UTC (permalink / raw)
To: glibc-cvs
The branch 'azanella/bz18231' was deleted.
It previously pointed to:
04e2969... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
04e2969... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
bb6cb29... sh: Split BE/LE abilist
ee038ec... microblaze: Split BE/LE abilist
95e0e53... arm: Split BE/LE abilist
commit 04e29690214c72cf7a55e6f4a46e044502d2350a
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon Jul 22 12:36:09 2019 +0000
sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
This patch sets the mode field in ipc_perm as mode_t for all architectures,
as POSIX specification [1]. The changes required are as follow:
1. It moves the ipc_perm definition out of ipc.h to its own header
ipc_perm.h. It also allows consolidate the IPC_* definition on
only one header.
2. The generic implementation follow the kernel ipc64_perm size so the
syscall can be made directly without temporary buffer copy. However,
since glibc defines the MODE field as mode_t, it omits the __PAD1 field
(since glibc does not export mode_t as 16-bit for any architecture).
It is a two-fold improvement:
2.1. New implementation which follow Linux UAPI will not need to
provide an arch-specific ipc-perm.h header neither wrongly
use the wrong 16-bit definition from previous default ipc.h
(as csky did).
2.1. It allows consolidate ipc_perm definition for architectures that
already provide mode_t as 32-bit.
3. All kernel ABIs for the supported architectures already provides the
expected padding for mode type extension to 32-bit. However, some
architectures the padding has the wrong placement, so it requires
the ipc control routines (msgctl, semctl, and shmctl) to adjust the
mode field accordingly. Currently they are armeb, microblaze, m68k,
s390, and sheb.
A new assume is added, __ASSUME_SYSVIPC_SUPPORT_MODE32, which the
required architecture undefine.
4. For the architecture that undefined __ASSUME_SYSVIPC_SUPPORT_MODE32,
it also requires compat symbols that do not adjust the mode field.
Checked on arm-linux-gnueabihf, aarch64-linux-gnu, powerpc64le-linux-gnu,
and x86_64-linux-gnu. I also checked the sysvipc tests on hppa-linux-gnu,
sh4-linux-gnu, s390x-linux-gnu, and s390-linux-gnu.
[BZ #18231]
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/aarch64/bits/ipc.h: Remove file.
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
[__BYTE_ORDER == __BIG_ENDIAN] (__ASSUME_SYSVIPC_SUPPORT_MODE32):
Undefine.
* sysdeps/sysv/linux/microblaze/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
[!__s390x__] (__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc.h (ipc_perm): Move to
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/msgctl.c (DEFAULT_VERSION): Define as
2.30 if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not defined.
(msgctl_syscall, __msgctl_mode16): New symbol.
(__new_msgctl): Handle if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not
defined.
* sysdeps/unix/sysv/linux/semctl.c: Likewise.
* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
* sysdeps/unix/sysv/linux/arm/be/libc.abilist (GLIBC_2.30): Add
msgctl, semctl, and shmctl.
* sysdeps/sysv/linux/microblaze/be/libc.abilist: Likewise.
* conform/data/sys/ipc.h-data: Only xfail {struct ipc_perm} mode_t
mode for Hurd.
* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/be/libc.abilist: Likewise.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html
commit bb6cb29f8ed7efc0897612918ea2d7382f9dab4e
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 17:25:57 2019 -0300
sh: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for sh4eb. This patch
adds the required folder and files for both BE and LE abilist. No
semantic changes are expected.
Checked with check-abi for sh4eb-linux-gnu and sh4-linux-gnu.
* sysdeps/sh/preconfigure.ac: New file.
* sysdeps/sh/preconfigure: Regenerate.
* sysdeps/sh/be/sh3/Implies: New file.
* sysdeps/sh/be/sh4/Implies: Likewise.
* sysdeps/sh/le/sh3/Implies: Likewise.
* sysdeps/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh3/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/*.abilist: Move to
sysdeps/unix/sysv/linux/sh/le/*.abilist.
* sysdeps/unix/sysv/linux/sh/be/*.abilist: New files.
commit ee038ecc0fe74a30fccf9fdcdbacb9d69fe750a3
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:48:56 2019 -0300
microblaze: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for microblaze. This patch
adds the required folder and files for both BE and LE abilist. No semantic
changes are expected.
Checked with check-abi for microblaze-linux-gnueabihf and
microblazeel-linux-gnueabihf.
* sysdeps/microblaze/preconfigure.ac: New file.
* sysdeps/microblaze/preconfigure: Regenerate.
* sysdeps/microblaze/be/implies: New file.
* sysdeps/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/be/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/*.abilist. Move to
sysdeps/unix/sysv/linux/microblaze/be/*.abilist.
* sysdeps/unix/sysv/linux/microblaze/le/*.abilist: New files.
commit 95e0e53d3d625c19d6cc5c1d3c1cc5c17ca06d21
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:26:49 2019 -0300
arm: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for armeb. This patch
adds the required folder and files for both BE and LE abilist. No
semantic changes are expected.
Checked with check-abi for arm-linux-gnueabihf and armeb-linux-gnueabihf.
* sysdeps/arm/preconfigure.ac: Set machine based on endianness.
* sysdeps/arm/preconfigure: Regenerate.
* sysdeps/arm/be/Implies: New file.
* sysdeps/arm/be/armv6/Implies: Likewise.
* sysdeps/arm/be/armv6t2/Implies: Likewise.
* sysdeps/arm/be/armv7/Implies: Likewise.
* sysdeps/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/be/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/*.abilist: Move to
sysdeps/unix/sysv/linux/arm/le/*.abilist.
* sysdeps/unix/sysv/linux/arm/be/l*.abilist: New files.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [glibc] Deleted branch azanella/bz18231
@ 2019-08-28 13:58 Adhemerval Zanella
0 siblings, 0 replies; 3+ messages in thread
From: Adhemerval Zanella @ 2019-08-28 13:58 UTC (permalink / raw)
To: glibc-cvs
The branch 'azanella/bz18231' was deleted.
It previously pointed to:
02dc8be... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
02dc8be... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
1f88ad5... sh: Split BE/LE abilist
39b517a... microblaze: Split BE/LE abilist
753ab92... arm: Split BE/LE abilist
0b04bc2... Update sysvipc kernel-features.h files for Linux 5.1
9f2f280... ipc: Refactor sysvipc internal definitions
commit 02dc8be8db5eb2c67f0c9ade7402532bb2fe8726
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon Jul 22 12:36:09 2019 +0000
sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
This patch sets the mode field in ipc_perm as mode_t for all architectures,
as POSIX specification [1]. The changes required are as follow:
1. It moves the ipc_perm definition out of ipc.h to its own header
ipc_perm.h. It also allows consolidate the IPC_* definition on
only one header.
2. The generic implementation follow the kernel ipc64_perm size so the
syscall can be made directly without temporary buffer copy. However,
since glibc defines the MODE field as mode_t, it omits the __PAD1 field
(since glibc does not export mode_t as 16-bit for any architecture).
It is a two-fold improvement:
2.1. New implementation which follow Linux UAPI will not need to
provide an arch-specific ipc-perm.h header neither wrongly
use the wrong 16-bit definition from previous default ipc.h
(as csky did).
2.1. It allows consolidate ipc_perm definition for architectures that
already provide mode_t as 32-bit.
3. All kernel ABIs for the supported architectures already provides the
expected padding for mode type extension to 32-bit. However, some
architectures the padding has the wrong placement, so it requires
the ipc control routines (msgctl, semctl, and shmctl) to adjust the
mode field accordingly. Currently they are armeb, microblaze, m68k,
s390, and sheb.
A new assume is added, __ASSUME_SYSVIPC_SUPPORT_MODE32, which the
required architecture undefine.
4. For the architecture that undefined __ASSUME_SYSVIPC_SUPPORT_MODE32,
it also requires compat symbols that do not adjust the mode field.
Checked on arm-linux-gnueabihf, aarch64-linux-gnu, powerpc64le-linux-gnu,
and x86_64-linux-gnu. I also checked the sysvipc tests on hppa-linux-gnu,
sh4-linux-gnu, s390x-linux-gnu, and s390-linux-gnu.
[BZ #18231]
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/aarch64/bits/ipc.h: Remove file.
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
[__BYTE_ORDER == __BIG_ENDIAN] (__ASSUME_SYSVIPC_SUPPORT_MODE32):
Undefine.
* sysdeps/sysv/linux/microblaze/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
[!__s390x__] (__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc.h (ipc_perm): Move to
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/msgctl.c (DEFAULT_VERSION): Define as
2.30 if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not defined.
(msgctl_syscall, __msgctl_mode16): New symbol.
(__new_msgctl): Handle if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not
defined.
* sysdeps/unix/sysv/linux/semctl.c: Likewise.
* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
* sysdeps/unix/sysv/linux/arm/be/libc.abilist (GLIBC_2.30): Add
msgctl, semctl, and shmctl.
* sysdeps/sysv/linux/microblaze/be/libc.abilist: Likewise.
* conform/data/sys/ipc.h-data: Only xfail {struct ipc_perm} mode_t
mode for Hurd.
* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/be/libc.abilist: Likewise.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html
commit 1f88ad55f2aa580ce1f258bc4cda5eef453051fd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 17:25:57 2019 -0300
sh: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for sh4eb. This patch
adds the required folder and files for both BE and LE abilist. No
semantic changes are expected.
Checked with check-abi for sh4eb-linux-gnu and sh4-linux-gnu.
* sysdeps/sh/preconfigure.ac: New file.
* sysdeps/sh/preconfigure: Regenerate.
* sysdeps/sh/be/sh3/Implies: New file.
* sysdeps/sh/be/sh4/Implies: Likewise.
* sysdeps/sh/le/sh3/Implies: Likewise.
* sysdeps/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh3/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/*.abilist: Move to
sysdeps/unix/sysv/linux/sh/le/*.abilist.
* sysdeps/unix/sysv/linux/sh/be/*.abilist: New files.
commit 39b517a4f5266db55ab292e662fa30ac6516f4e6
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:48:56 2019 -0300
microblaze: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for microblaze. This patch
adds the required folder and files for both BE and LE abilist. No semantic
changes are expected.
Checked with check-abi for microblaze-linux-gnueabihf and
microblazeel-linux-gnueabihf.
* sysdeps/microblaze/preconfigure.ac: New file.
* sysdeps/microblaze/preconfigure: Regenerate.
* sysdeps/microblaze/be/implies: New file.
* sysdeps/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/be/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/*.abilist. Move to
sysdeps/unix/sysv/linux/microblaze/be/*.abilist.
* sysdeps/unix/sysv/linux/microblaze/le/*.abilist: New files.
commit 753ab92308d5ff39723f6ba1776ff49ced0662cd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:26:49 2019 -0300
arm: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for armeb. This patch
adds the required folder and files for both BE and LE abilist. No
semantic changes are expected.
Checked with check-abi for arm-linux-gnueabihf and armeb-linux-gnueabihf.
* sysdeps/arm/preconfigure.ac: Set machine based on endianness.
* sysdeps/arm/preconfigure: Regenerate.
* sysdeps/arm/be/Implies: New file.
* sysdeps/arm/be/armv6/Implies: Likewise.
* sysdeps/arm/be/armv6t2/Implies: Likewise.
* sysdeps/arm/be/armv7/Implies: Likewise.
* sysdeps/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/be/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/*.abilist: Move to
sysdeps/unix/sysv/linux/arm/le/*.abilist.
* sysdeps/unix/sysv/linux/arm/be/l*.abilist: New files.
commit 0b04bc20775b38d6a55e16c0bf9deefcb19ac496
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon May 20 12:17:46 2019 -0300
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.1.2 kernel with
--enable-kernel=5.1.
* sysdeps/unix/sysv/linux/i386/kernel-features.h.
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Only undefine if
[__LINUX_KERNEL_VERSION < 0x050100].
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/mips/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Only use wire-up
syscall if __ASSUME_SYSVIPC_DEFAULT_IPC_64 is not defined.
* sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise.
* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise.
* sysdeps/unix/sysv/linux/semop.c (semop): Only use wire-up if
__NR_semop is also defined.
* sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Likewise.
commit 9f2f2807d10f5767eaf7d6b22d331be98d3c818b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed May 15 15:20:58 2019 -0300
ipc: Refactor sysvipc internal definitions
This patch refactor the internal sysvipc in two main points:
1. Add a new __ASSUME_SYSVIPC_DEFAULT_IPC_64 to infer the __IPC_64
value in wire-up or ipc syscall. The defaut value assumed for
__IPC_64 is also changed from 0x100 to 0x0, aligning with Linux
generic UAPI. The idea is to simplify the Linux 5.1 wire-up for
sysvipc syscalls for some 32-bit ABIs (which expectes __IPC_64
being 0x0) and simplify new ports (which would not require add
a ipc_priv.h to override the __IPC_64 value).
2. It removes some duplicated definition from sysvipc compat code
at ipc_priv.h. The idea is also to make it simpler to enable
the new wireup sysvipc on Linux v5.1.
There is no semantic change expected on any port. Checked with a build
against all affected ABIs.
* sysdeps/unix/sysv/linux/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/alpha/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/powerpc/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Define.
* sysdeps/unix/sysv/linux/alpha/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Undefine.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/i386/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/mips/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel-features.h
[!__arch64__] (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/nios2/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/hppa/ipc_priv.h: Remove file.
* sysdeps/unix/sysv/linux/ia64/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/nios2/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/csky/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/riscv/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/ipc_priv.h: Likewise.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [glibc] Deleted branch azanella/bz18231
@ 2019-07-30 20:30 Adhemerval Zanella
0 siblings, 0 replies; 3+ messages in thread
From: Adhemerval Zanella @ 2019-07-30 20:30 UTC (permalink / raw)
To: glibc-cvs
The branch 'azanella/bz18231' was deleted.
It previously pointed to:
73d25c7... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
73d25c7... sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
f9ed05b... sh: Split BE/LE abilist
d5cdf7d... microblaze: Split BE/LE abilist
0a9e2c4... arm: Split BE/LE abilist
6c2d232... Update sysvipc kernel-features.h files for Linux 5.1
ea248d4... ipc: Refactor sysvipc internal definitions
commit 73d25c7e25f6eb10b552f2e387dd5979e8028c2d
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon Jul 22 12:36:09 2019 +0000
sysvipc: Set ipc_perm mode as mode_t (BZ#18231)
This patch sets the mode field in ipc_perm as mode_t for all architectures,
as POSIX specification [1]. The changes required as as follow:
1. It moves the ipc_perm definition out of ipc.h to its own header
ipc_perm.h. It allows also consolidate the IPC_* definition on
only one header.
2. The generic implementation is follows the kernel ipc64_perm size so
the syscall can be made directly without temporary buffer copy. However,
since glibc defines the MODE field as mode_t, it omits the __PAD1 field
(since glibc does not export mode_t as 16-bit for any architecture).
It is a two-fold improvement:
2.1. New implementation which are suppose to follow Linux UAPI won't
need to provide an arch-specific ipc-perm.h header neither wrongly
use the wrong 16-bit definition (as csky).
2.1. It allows consolidate ipc_perm definition for architectures that
already provide mode_t as 32-bit.
3. All kernel ABIs for the supported architectures already provides the
expected padding for mode extension from 32-bit. However for some
architectures the padding has the wrong placement, so it requires
the ipc control routines (msgctl, semctl, and shmctl) to adjust the
mode field accordingly. Currently they are armeb, microblaze, s390,
and sh.
A new assume is added, __ASSUME_SYSVIPC_SUPPORT_MODE32, which the
aforementioned architecture undefine.
4. For the architecture that undefined __ASSUME_SYSVIPC_SUPPORT_MODE32,
it also requires compat symbols.
Checked on arm-linux-gnueabihf, aarch64-linux-gnu, powerpc64le-linux-gnu,
and x86_64-linux-gnu. I also checked the sysvipc tests on hppa-linux-gnu,
sh4-linux-gnu, s390x-linux-gnu, and s390-linux-gnu.
[BZ #18231]
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/aarch64/bits/ipc.h: Remove file.
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
[__BYTE_ORDER == __BIG_ENDIAN] (__ASSUME_SYSVIPC_SUPPORT_MODE32):
Undefine.
* sysdeps/sysv/linux/microblaze/kernel-features.h:
Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
[!__s390x__] (__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc.h (ipc_perm): Move to
bits/ipc-perm.h.
* sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SYSVIPC_SUPPORT_MODE32): Define.
* sysdeps/unix/sysv/linux/msgctl.c (DEFAULT_VERSION): Define as
2.30 if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not defined.
(msgctl_syscall, __msgctl_mode16): New symbol.
(__new_msgctl): Handle if __ASSUME_SYSVIPC_SUPPORT_MODE32 is not
defined.
* sysdeps/unix/sysv/linux/semctl.c: Likewise.
* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
* sysdeps/unix/sysv/linux/arm/be/libc.abilist (GLIBC_2.30): Add
msgctl, semctl, and shmctl.
* sysdeps/sysv/linux/microblaze/be/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/be/libc.abilist: Likewise.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html
commit f9ed05bf701b1f0f6a8a10b0edcb51f173e1cea5
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 17:25:57 2019 -0300
sh: Split BE/LE abilist
* sysdeps/sh/preconfigure: Set machine based on endianness.
* sysdeps/sh/be/sh3/Implies: New file.
* sysdeps/sh/be/sh4/Implies: Likewise.
* sysdeps/sh/le/sh3/Implies: Likewise.
* sysdeps/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh3/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/le/sh4/Implies: Likewise.
* sysdeps/unix/sysv/linux/sh/*.abilist: Move to
sysdeps/unix/sysv/linux/sh/le/*.abilist.
* sysdeps/unix/sysv/linux/sh/be/*.abilist: New files.
commit d5cdf7d72fa4089a5f4383cc03b8427095b36661
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:48:56 2019 -0300
microblaze: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for microblaze. This patch
adds the requires folder the abilist files for BE and LE abis. No
semantic changes expected.
Checked with check-abi for microblaze-linux-gnueabihf and
microblazeel-linux-gnueabihf.
* sysdeps/microblaze/preconfigure: Set machine based on endianness.
* sysdeps/microblaze/be/implies: New file.
* sysdeps/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/be/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/le/implies: Likewise.
* sysdeps/unix/sysv/linux/microblaze/*.abilist. Move to
sysdeps/unix/sysv/linux/microblaze/be/*.abilist.
* sysdeps/unix/sysv/linux/microblaze/le/*.abilist: New files.
commit 0a9e2c4f1af2aa68cf4d63dca8d70f62d07c5f9b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Jul 23 14:26:49 2019 -0300
arm: Split BE/LE abilist
The fix for BZ#18231 requires new symbols only for armeb. This patch
adds the requires folder the abilist files for armeb and arm. No
semantic changes expected.
Checked with check-abi for arm-linux-gnueabihf and armeb-linux-gnueabihf.
* sysdeps/arm/preconfigure.ac: Set machine based on endianness.
* sysdeps/arm/preconfigure: Regenerate.
* sysdeps/arm/be/Implies: New file.
* sysdeps/arm/be/armv6/Implies: Likewise.
* sysdeps/arm/be/armv6t2/Implies: Likewise.
* sysdeps/arm/be/armv7/Implies: Likewise.
* sysdeps/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/be/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/le/Implies: Likewise.
* sysdeps/unix/sysv/linux/arm/*.abilist: Move to
sysdeps/unix/sysv/linux/arm/le/*.abilist.
* sysdeps/unix/sysv/linux/arm/be/l*.abilist: New files.
commit 6c2d232a8ec276afa967f19c384f30a1e0c2d6d0
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon May 20 12:17:46 2019 -0300
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.1.2 kernel with
--enable-kernel=5.1.
* sysdeps/unix/sysv/linux/i386/kernel-features.h.
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Only undefine if
[__LINUX_KERNEL_VERSION < 0x050100].
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/mips/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel-features.h
(__ASSUME_DIRECT_SYSVIPC_SYSCALLS,
__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Only use wire-up
syscall if __ASSUME_SYSVIPC_DEFAULT_IPC_64 is not defined.
* sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise.
* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise.
* sysdeps/unix/sysv/linux/semop.c (semop): Only use wire-up if
__NR_semop is also defined.
* sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Likewise.
commit ea248d4f1df4000eda1f6cf47745918e268bf0ae
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed May 15 15:20:58 2019 -0300
ipc: Refactor sysvipc internal definitions
This patch refactor the internal sysvipc in two main points:
1. Add a new __ASSUME_SYSVIPC_DEFAULT_IPC_64 to infer the __IPC_64
value in wire-up or ipc syscall. The defaut value assumed for
__IPC_64 is also changed from 0x100 to 0x0, aligning with Linux
generic UAPI. The idea is to simplify the Linux 5.1 wire-up for
sysvipc syscalls for some 32-bit ABIs (which expectes __IPC_64
being 0x0) and simplify new ports (which would not require add
a ipc_priv.h to override the __IPC_64 value).
2. It removes some duplicated definition from sysvipc compat code
at ipc_priv.h. The idea is also to make it simpler to enable
the new wireup sysvipc on Linux v5.1.
There is no semantic change expected on any port. Checked with a build
against all affected ABIs.
* sysdeps/unix/sysv/linux/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/alpha/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/powerpc/ipc_priv.h (__OLD_IPC_ID_TYPE,
__OLD_IPC_MODE_TYPE, __OLD_IPC_SEQ_TYPE): Define.
(__old_ipc_perm): Use the new defines.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Define.
* sysdeps/unix/sysv/linux/alpha/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Undefine.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/i386/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/mips/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/s390/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel-features.h
[!__arch64__] (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Likewise.
* sysdeps/unix/sysv/linux/nios2/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/hppa/ipc_priv.h: Remove file.
* sysdeps/unix/sysv/linux/ia64/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/nios2/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/csky/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/riscv/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/ipc_priv.h: Likewise.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-10-11 19:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-11 19:22 [glibc] Deleted branch azanella/bz18231 Adhemerval Zanella
-- strict thread matches above, loose matches on Subject: below --
2019-08-28 13:58 Adhemerval Zanella
2019-07-30 20:30 Adhemerval Zanella
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).