aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/ia64/bits
AgeCommit message (Collapse)Author
2019-10-10sysvipc: Set ipc_perm mode as mode_t (BZ#18231)Adhemerval Zanella
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_BROKEN_MODE_T, which the required ABIs define. 4. For the ABIs that define __ASSUME_SYSVIPC_BROKEN_MODE_T, it also require 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. I also did a sanity test against armeb qemu usermode for the sysvipc tests. [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_BROKEN_MODE_T): Define. * sysdeps/sysv/linux/microblaze/kernel-features.h: Likewise. * sysdeps/unix/sysv/linux/s390/kernel-features.h [!__s390x__] (__ASSUME_SYSVIPC_BROKEN_MODE_T): Define. * sysdeps/unix/sysv/linux/sh/kernel-features.h (__ASSUME_SYSVIPC_BROKEN_MODE_T): 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: Add comment about __ASSUME_SYSVIPC_BROKEN_MODE_T semantic. * sysdeps/unix/sysv/linux/msgctl.c (DEFAULT_VERSION): Define as 2.31 if __ASSUME_SYSVIPC_BROKEN_MODE_T is defined. (msgctl_syscall, __msgctl_mode16): New symbol. (__new_msgctl): Add bits for __ASSUME_SYSVIPC_BROKEN_MODE_T. * sysdeps/unix/sysv/linux/semctl.c: Likewise. * sysdeps/unix/sysv/linux/shmctl.c: Likewise. * sysdeps/unix/sysv/linux/arm/be/libc.abilist (GLIBC_2.31): Add msgctl, semctl, and shmctl. * sysdeps/sysv/linux/microblaze/be/libc.abilist: Likewise. * 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. * conform/data/sys/ipc.h-data: Only xfail {struct ipc_perm} mode_t mode for Hurd. * sysdeps/unix/sysv/linux/m68k/Versions (libc) [GLIBC_2.31]: Add msgctl, semctl, and shmctl. * sysdeps/unix/sysv/linux/arm/be/Versions: New file. * sysdeps/unix/sysv/linux/microblaze/be/Versions: Likewise. * sysdeps/unix/sysv/linux/sh/be/Versions: Likewise. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html
2019-10-01Split up endian.h to minimize exposure of BYTE_ORDER.Alistair Francis
With only two exceptions (sys/types.h and sys/param.h, both of which historically might have defined BYTE_ORDER) the public headers that include <endian.h> only want to be able to test __BYTE_ORDER against __*_ENDIAN. This patch creates a new bits/endian.h that can be included by any header that wants to be able to test __BYTE_ORDER and/or __FLOAT_WORD_ORDER against the __*_ENDIAN constants, or needs __LONG_LONG_PAIR. It only defines macros in the implementation namespace. The existing bits/endian.h (which could not be included independently of endian.h, and only defines __BYTE_ORDER and maybe __FLOAT_WORD_ORDER) is renamed to bits/endianness.h. I also took the opportunity to canonicalize the form of this header, which we are stuck with having one copy of per architecture. Since they are so short, this means git doesn’t understand that they were renamed from existing headers, sigh. endian.h itself is a nonstandard header and its only remaining use from a standard header is guarded by __USE_MISC, so I dropped the __USE_MISC conditionals from around all of the public-namespace things it defines. (This means, an application that requests strict library conformance but includes endian.h will still see the definition of BYTE_ORDER.) A few changes to specific bits/endian(ness).h variants deserve mention: - sysdeps/unix/sysv/linux/ia64/bits/endian.h is moved to sysdeps/ia64/bits/endianness.h. If I remember correctly, ia64 did have selectable endianness, but we have assembly code in sysdeps/ia64 that assumes it’s little-endian, so there is no reason to treat the ia64 endianness.h as linux-specific. - The C-SKY port does not fully support big-endian mode, the compile will error out if __CSKYBE__ is defined. - The PowerPC port had extra logic in its bits/endian.h to detect a broken compiler, which strikes me as unnecessary, so I removed it. - The only files that defined __FLOAT_WORD_ORDER always defined it to the same value as __BYTE_ORDER, so I removed those definitions. The SH bits/endian(ness).h had comments inconsistent with the actual setting of __FLOAT_WORD_ORDER, which I also removed. - I *removed* copyright boilerplate from the few bits/endian(ness).h headers that had it; these files record a single fact in a fashion dictated by an external spec, so I do not think they are copyrightable. As long as I was changing every copy of ieee754.h in the tree, I noticed that only the MIPS variant includes float.h, because it uses LDBL_MANT_DIG to decide among three different versions of ieee854_long_double. This patch makes it not include float.h when GCC’s intrinsic __LDBL_MANT_DIG__ is available. * string/endian.h: Unconditionally define LITTLE_ENDIAN, BIG_ENDIAN, PDP_ENDIAN, and BYTE_ORDER. Condition byteswapping macros only on !__ASSEMBLER__. Move the definitions of __BIG_ENDIAN, __LITTLE_ENDIAN, __PDP_ENDIAN, __FLOAT_WORD_ORDER, and __LONG_LONG_PAIR to... * string/bits/endian.h: ...this new file, which includes the renamed header bits/endianness.h for the definition of __BYTE_ORDER and possibly __FLOAT_WORD_ORDER. * string/Makefile: Install bits/endianness.h. * include/bits/endian.h: New wrapper. * bits/endian.h: Rename to bits/endianness.h. Add multiple-include guard. Rewrite the comment explaining what the machine-specific variants of this file should do. * sysdeps/unix/sysv/linux/ia64/bits/endian.h: Move to sysdeps/ia64. * sysdeps/aarch64/bits/endian.h * sysdeps/alpha/bits/endian.h * sysdeps/arm/bits/endian.h * sysdeps/csky/bits/endian.h * sysdeps/hppa/bits/endian.h * sysdeps/ia64/bits/endian.h * sysdeps/m68k/bits/endian.h * sysdeps/microblaze/bits/endian.h * sysdeps/mips/bits/endian.h * sysdeps/nios2/bits/endian.h * sysdeps/powerpc/bits/endian.h * sysdeps/riscv/bits/endian.h * sysdeps/s390/bits/endian.h * sysdeps/sh/bits/endian.h * sysdeps/sparc/bits/endian.h * sysdeps/x86/bits/endian.h: Rename to endianness.h; canonicalize form of file; remove redundant definitions of __FLOAT_WORD_ORDER. * sysdeps/powerpc/bits/endianness.h: Remove logic to check for broken compilers. * ctype/ctype.h * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h * sysdeps/arm/nptl/bits/pthreadtypes-arch.h * sysdeps/csky/nptl/bits/pthreadtypes-arch.h * sysdeps/ia64/ieee754.h * sysdeps/ieee754/ieee754.h * sysdeps/ieee754/ldbl-128/ieee754.h * sysdeps/ieee754/ldbl-128ibm/ieee754.h * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h * sysdeps/mips/ieee754/ieee754.h * sysdeps/mips/nptl/bits/pthreadtypes-arch.h * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h * sysdeps/nptl/pthread.h * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h * sysdeps/sh/nptl/bits/pthreadtypes-arch.h * sysdeps/sparc/sparc32/ieee754.h * sysdeps/unix/sysv/linux/generic/bits/stat.h * sysdeps/unix/sysv/linux/generic/bits/statfs.h * sysdeps/unix/sysv/linux/sys/acct.h * wctype/bits/wctype-wchar.h: Include bits/endian.h, not endian.h. * sysdeps/unix/sysv/linux/hppa/pthread.h: Don’t include endian.h. * sysdeps/mips/ieee754/ieee754.h: Use __LDBL_MANT_DIG__ in ifdefs, instead of LDBL_MANT_DIG. Only include float.h when __LDBL_MANT_DIG__ is not predefined, in which case define __LDBL_MANT_DIG__ to equal LDBL_MANT_DIG.
2019-09-07Prefer https to http for gnu.org and fsf.org URLsPaul Eggert
Also, change sources.redhat.com to sourceware.org. This patch was automatically generated by running the following shell script, which uses GNU sed, and which avoids modifying files imported from upstream: sed -ri ' s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g ' \ $(find $(git ls-files) -prune -type f \ ! -name '*.po' \ ! -name 'ChangeLog*' \ ! -path COPYING ! -path COPYING.LIB \ ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \ ! -path manual/texinfo.tex ! -path scripts/config.guess \ ! -path scripts/config.sub ! -path scripts/install-sh \ ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \ ! -path INSTALL ! -path locale/programs/charmap-kw.h \ ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \ ! '(' -name configure \ -execdir test -f configure.ac -o -f configure.in ';' ')' \ ! '(' -name preconfigure \ -execdir test -f preconfigure.ac ';' ')' \ -print) and then by running 'make dist-prepare' to regenerate files built from the altered files, and then executing the following to cleanup: chmod a+x sysdeps/unix/sysv/linux/riscv/configure # Omit irrelevant whitespace and comment-only changes, # perhaps from a slightly-different Autoconf version. git checkout -f \ sysdeps/csky/configure \ sysdeps/hppa/configure \ sysdeps/riscv/configure \ sysdeps/unix/sysv/linux/csky/configure # Omit changes that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines git checkout -f \ sysdeps/powerpc/powerpc64/ppc-mcount.S \ sysdeps/unix/sysv/linux/s390/s390-64/syscall.S # Omit change that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2018-10-17Move SHMLBA to its own header.Joseph Myers
One difference between bits/shm.h headers for architectures using the Linux kernel is the definition of SHMLBA. This was noted in <https://sourceware.org/ml/libc-alpha/2018-09/msg00175.html> as a reason why even a new architecture (C-SKY) might need its own bits/shm.h; thus, splitting it out of bits/shm.h can allow less duplication of headers for new architectures. This patch moves that definition to its own header, bits/shmlba.h, to allow more sharing of headers between architectures. That move allows the arm, ia64 and sh variants of bits/shm.h to be removed, as they had no other significant differences from the generic bits/shm.h; powerpc and x86 have their own bits/shm.h but do not need to get their own bits/shmlba.h because they use the same SHMLBA as the generic header. Other architectures with their own bits/shm.h get their own bits/shmlba.h without being able to remove their own bits/shm.h until the generic one has been adapted to be able to handle more architectures (where, in addition to the differences seen for bits/msq.h and bits/sem.h, the position of shm_segsz in struct shmid_ds also depends on the architecture). Tested for x86_64 and x86, and with build-many-glibcs.py. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add bits/shmlba.h. * sysdeps/unix/sysv/linux/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. (__getpagesize): Remove function declaration. * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. * sysdeps/unix/sysv/linux/mips/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. (__getpagesize): Remove function declaration. * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. (__getshmlba): Remove function declaration. * sysdeps/unix/sysv/linux/x86/bits/shm.h: Include <bits/shmlba.h>. (SHMLBA): Remove macro. (__getpagesize): Remove function declaration. * sysdeps/unix/sysv/linux/arm/bits/shm.h: Remove file. * sysdeps/unix/sysv/linux/ia64/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/bits/shmlba.h: New file. * sysdeps/unix/sysv/linux/arm/bits/shmlba.h: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/shmlba.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/shmlba.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/shmlba.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/shmlba.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shmlba.h: Likewise.
2018-10-10Use common bits/sem.h for more architectures.Joseph Myers
sysdeps/unix/sysv/linux/bits/sem.h has padding after time fields in struct semid_ds unconditionally, and thus is only suitable for 32-bit architectures (no 64-bit configurations use this file); sysdeps/unix/sysv/linux/generic/bits/sem.h is substantively the same, except that the padding is conditioned on __WORDSIZE == 32, and so it can be used for 64-bit architectures as well. This patch adds the conditionals to sysdeps/unix/sysv/linux/bits/sem.h. The linux/generic/ version is then no longer needed and so is removed, as are the alpha, ia64 and s390 versions which are also no longer needed. The other architecture-specific versions have different padding or types and so are still needed after this change. This is essentially the same change for bits/sem.h as the bits/msq.h patch. However, the details of the padding variations for the architectures that aren't changed are not all the same between msqid_ds and semid_ds. Tested with build-many-glibcs.py. * sysdeps/unix/sysv/linux/bits/sem.h: Include <bits/wordsize.h>. (struct semid_ds): Condition padding after time fields on [__WORDSIZE == 32]. * sysdeps/unix/sysv/linux/alpha/bits/sem.h: Remove file. * sysdeps/unix/sysv/linux/generic/bits/sem.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sem.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/sem.h: Likewise.
2018-10-10Use common bits/msq.h for more architectures.Joseph Myers
sysdeps/unix/sysv/linux/bits/msq.h has padding after time fields in struct msqid_ds unconditionally, and thus is only suitable for 32-bit architectures (no 64-bit configurations use this file); sysdeps/unix/sysv/linux/generic/bits/msq.h is substantively the same, except that the padding is conditioned on __WORDSIZE == 32, and so it can be used for 64-bit architectures as well. This patch adds the conditionals to sysdeps/unix/sysv/linux/bits/msq.h. The linux/generic/ version is then no longer needed and so is removed, as are the alpha, ia64 and s390 versions which are also no longer needed. The other architecture-specific versions have different padding or types and so are still needed after this change. Tested with build-many-glibcs.py. * sysdeps/unix/sysv/linux/bits/msq.h: Include <bits/wordsize.h>. (struct msqid_ds): Condition padding after time fields on [__WORDSIZE == 32]. * sysdeps/unix/sysv/linux/alpha/bits/msq.h: Remove file. * sysdeps/unix/sysv/linux/generic/bits/msq.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/msq.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/msq.h: Likewise.
2018-09-26Share MAP_* flags between more architectures.Joseph Myers
Continuing bits/mman.h unification between architectures using the Linux kernel, this patch arranges for the common set of MAP_* flags to be used by two more architectures. That common set is moved to bits/mman-map-flags-generic.h, which is included by bits/mman.h, to allow architectures to use that common set even if they also have architecture-specific additions to it. As well as the generic bits/mman.h, the versions for x86 and ia64 are also then made to include bits/mman-map-flags-generic.h, so while they still need architecture-specific bits/mman.h (for MAP_32BIT and MAP_GROWSUP respectively), they do not need to duplicate the generic flag definitions in there. Tested for x86_64 and x86, and with build-many-glibcs.py. * sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h: New file. Most contents moved from .... * sysdeps/unix/sysv/linux/bits/mman.h: ... here. Move contents to and include <bits/mman-map-flags-generic.h>. * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] (sysdep_headers): Add bits/mman-map-flags-generic.h. * sysdeps/unix/sysv/linux/ia64/bits/mman.h: Include <bits/mman-map-flags-generic.h>. [__USE_MISC] (MAP_GROWSUP): Only define this macro, not other macros defined in <bits/mman-map-flags-generic.h>. * sysdeps/unix/sysv/linux/x86/bits/mman.h: Include <bits/mman-map-flags-generic.h>. [__USE_MISC] (MAP_32BIT): Only define this macro, not other macros defined in <bits/mman-map-flags-generic.h>.
2018-09-25Unify some sys/procfs.h headers.Joseph Myers
As per recent discussions, this patch unifies some of the sys/procfs.h headers for architectures using the Linux kernel, producing a generic version that can hopefully be used by all new architectures as well. The new generic version is based on the AArch64 one. The register definitions, the only part that generally needs to vary by architecture, go in a new bits/procfs.h header (which each architecture using the generic version needs to provide); that header also has any #includes that were in the architecture-specific sys/procfs.h, where those includes went beyond the generic set. The generic version is used for eight architectures where the generic definitions were the same as the architecture-specific ones. (Some of those architectures had #if 0 fields, now removed; some defined types or fields using different type names which were typedefs for the same underlying types.) Six of the remaining architectures with their own sys/procfs.h use unsigned short for pr_uid / pr_gid in some cases; moving those to the generic header will require a bits/ header to define a typedef for the type of those fields. In the case of alpha, the generic sys/procfs.h uses elf_gregset_t (= unsigned long int[33]) to define prgregset_t and elf_fpregset_t (= double[32]) to define prfpregset_t, but the alpha version uses gregset_t (= long int[33]) and fpregset_t (= long int[32]), so avoiding unnecessarily changing the underlying types (and thus C++ name mangling) again means a bits/ header will need to be able to define a different choice for those typedefs. bits/procfs.h is included outside the __BEGIN_DECLS / __END_DECLS pair (whereas the definitions it contains were previously inside that pair in various sys/procfs.h headers), because it sometimes includes other headers and putting those other #includes inside that pair seems risky. Because none of the declarations in bits/procfs.h are of functions or variables or involve function types, I don't think it makes any difference whether they are inside or outside an extern "C" context. Tested with build-many-glibcs.py (again, that does not provide much validation for the correctness of this patch). * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with file based on AArch64 version. Include <bits/procfs.h>. * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] (sysdep_headers): Add bits/procfs.h. * sysdeps/unix/sysv/linux/bits/procfs.h: New file. * sysdeps/unix/sysv/linux/aarch64/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/nios2/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/riscv/bits/procfs.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove file. * sysdeps/unix/sysv/linux/hppa/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/ia64/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/microblaze/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/nios2/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/riscv/sys/procfs.h: Likewise.
2018-09-17Update siginfo constants from Linux kernel (bug 21286).Joseph Myers
As of Linux 4.17, siginfo headers in the Linux kernel have been largely unified across architectures (so various constants are defined with common values in include/uapi/asm-generic/siginfo.h even if not all architectures can generate those particular constants). This patch makes glibc reflect that unification and the current set of constants in that header as of Linux 4.18. Various constants are added to bits/siginfo-consts.h (under the same feature test macro conditions as the other constants with the same prefix), and removed from the ia64 bits/siginfo-consts-arch.h where they were previously there - this is not limited to constants added by the unification. Nothing is done about macros that are defined in include/uapi/asm-generic/siginfo.h with names with leading '__' (some of those are ia64-specific ones that remain in the ia64 bits/siginfo-consts-arch.h without the leading '__' there). A consequence of these changes is that TRAP_HWBKPT becomes available on AArch64 and all other architectures as requested in bug 21286. Tested for x86_64; tested with build-many-glibcs.py for ia64. [BZ #21286] * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SI_DETHREAD): New constant. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (ILL_BADIADDR): Likewise. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_FLTUNK): Likewise. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_CONDTRAP): Likewise. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ACCADI): Likewise. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIDERR): Likewise. [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIPERR): Likewise. [__USE_XOPEN_EXTENDED] (TRAP_BRANCH): Likewise. [__USE_XOPEN_EXTENDED] (TRAP_HWBKPT): Likewise. [__USE_XOPEN_EXTENDED] (TRAP_UNK): Likweise. * sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h (ILL_BADIADDR): Remove constant. (TRAP_BRANCH): Likewise. (TRAP_HWBKPT): Likewise.
2018-06-18Add SHM_STAT_ANY from Linux 4.17 to bits/shm.h.Joseph Myers
Linux 4.17 adds a SHM_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/shm.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/arm/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sh/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise.
2018-06-18Add SEM_STAT_ANY from Linux 4.17 to bits/sem.h.Joseph Myers
Linux 4.17 adds a SEM_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/sem.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise.
2018-06-18Add MSG_STAT_ANY from Linux 4.17 to bits/msq.h.Joseph Myers
Linux 4.17 adds a MSG_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/msq.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise.
2018-06-05Add MAP_FIXED_NOREPLACE from Linux 4.17 to bits/mman.h.Joseph Myers
Linux 4.17 adds MAP_FIXED_NOREPLACE (value 0x100000 on most architectures, 0x200000 on alpha). This patch adds that macro to glibc's bits/mman.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): New macro. * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/mips/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise.
2018-03-05hurd: Fix includability of <hurd/signal.h> in all standardsSamuel Thibault
* bits/sigaction.h: Add include guard. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/tile/bits/sigaction.h: Likewise. * hurd/hurd/signal.h: Include <bits/sigaction.h>.
2018-02-06Add MAP_SYNC from Linux 4.15.Joseph Myers
This patch adds the MAP_SYNC macro from Linux 4.15 to various bits/mman.h headers. Note that this is *not* added to all architectures: in Linux 4.15, this macro is only in asm-generic/mman.h, and only some architectures' asm/mman.h include the asm-generic file - the architectures not using the asm-generic file will need their own values of MAP_SYNC allocated to support this functionality (some of them also already have conflicting mmap flags so the value there will have to be different from the generic 0x80000). Specifically, for glibc architectures, alpha hppa mips powerpc sparc tile lack allocations of values for MAP_SYNC. Tested for x86_64. * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC] (MAP_SYNC): New macro. * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise. * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_SYNC): Likewise.
2018-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2017-08-07Fix XPG4.2 bits/sigaction.h namespace (bug 21899).Joseph Myers
For XPG4.2, sa_sigaction, SA_ONSTACK, SA_RESETHAND, SA_RESTART and SA_NODEFER should be defined in signal.h, but they are only defined for other standards at present. This patch fixes the various bits/sigaction.h headers accordingly. All the fixes are essentially the same, except those for SPARC and Tile. For SPARC, the header (a) spuriously defined various nonstandard macros for __USE_UNIX98 || defined __USE_XOPEN2K8 and (b) defined some standard macros as aliases of nonstandard ones instead of the other way round. This patch fixes the SPARC header to handle these macros the same way and with the same conditions as those for other architectures, so the standard macros are the primary ones and the other ones are defined only for __USE_MISC and are aliases of the standard ones where applicable. For Tile, the header spuriously defined the nonstandard macro SA_NOPTRACE for __USE_UNIX98 || defined __USE_XOPEN2K8; this is moved to __USE_MISC. (Those nonstandard macros are in a reserved namespace, but it seems desirable to be consistent between architectures as far as possible, and so not define them in standard modes anywhere.) Tested for x86_64, and with build-many-glibcs.py. [BZ #21899] * bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. Define directly rather than as alias. (SA_RESETHAND): Likewise. (SA_INTERRUPT): Define only for [__USE_MISC]. (SA_NOMASK): Define as alias of SA_NODEFER, only for [__USE_MISC]. (SA_ONESHOT): Define as alias of SA_RESETHAND, only for [__USE_MISC]. (SA_STACK): Define only for [__USE_MISC]. * sysdeps/unix/sysv/linux/tile/bits/sigaction.h (struct sigaction): Define sa_handler and sa_sigaction using union also for [__USE_XOPEN_EXTENDED]. (SA_ONSTACK): Change [__USE_UNIX98] condition to [__USE_XOPEN_EXTENDED]. (SA_RESTART): Likewise. (SA_NODEFER): Likewise. (SA_RESETHAND): Likewise. (SA_NOPTRACE): Define only for [__USE_MISC].
2017-05-22Fix a bug in 'Remove __need macros from signal.h' (a992f506)Zack Weinberg
siginfo-arch.h is included in two different places, so the default definitions of the macros that it might or might not define need to be done conditionally afterward, not unconditionally beforehand. * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (__SI_ASYNCIO_AFTER_SIGIO): Define default after including bits/siginfo-arch.h, only if not already defined. * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h (__SI_ALIGNMENT, __SI_BAND_TYPE, __SI_CLOCK_T) (__SI_ERRNO_THEN_CODE, __SI_HAVE_SIGSYS, __SI_SEGFAULT_ADDL): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h: Unconditionally define __SI_* macros.
2017-05-20Remove __need macros from signal.h.Zack Weinberg
The types affected are __sig_atomic_t, sig_atomic_t, __sigset_t, sigset_t, sigval_t, sigevent_t, and siginfo_t. __sig_atomic_t is a scalar, so it's now directly available from bits/types.h. The others get bits/types/ headers. Side effects include: There have been small changes to which non-signal headers expose which subset of the signal-related types. A couple of architectures' nested siginfo_t fields had to be renamed to prevent undesired macro expansion. Internal code that wants to manipulate signal masks must now include <sigsetops.h> (which is not installed) and should be aware that __sigaddset, __sigandset, __sigdelset, __sigemptyset, and __sigorset no longer return a value (unlike the public API). Relatedly, the public signal.h no longer declares any of those functions. The obsolete sigmask() macro no longer has a system-specific definition -- in the cases where it matters, it didn't work anyway. New Linux architectures should create bits/siginfo-arch.h and/or bits/siginfo-consts-arch.h to customize their siginfo_t, rather than duplicating everything in bits/siginfo.h (which no longer exists). Add new __SI_* macros if necessary. Ports to other operating systems are strongly encouraged to generalize this scheme further. * bits/sigevent-consts.h * bits/siginfo-consts.h * bits/types/__sigset_t.h * bits/types/sigevent_t.h * bits/types/siginfo_t.h * sysdeps/unix/sysv/linux/bits/sigevent-consts.h * sysdeps/unix/sysv/linux/bits/siginfo-consts.h * sysdeps/unix/sysv/linux/bits/types/__sigset_t.h * sysdeps/unix/sysv/linux/bits/types/sigevent_t.h * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: New system-dependent bits headers. * sysdeps/unix/sysv/linux/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h * sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h * sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h: New Linux-only system-dependent bits headers. * signal/bits/types/sig_atomic_t.h * signal/bits/types/sigset_t.h * signal/bits/types/sigval_t.h: New non-system-dependent bits headers. * sysdeps/generic/sigsetops.h * sysdeps/unix/sysv/linux/sigsetops.h: New internal headers. * include/bits/types/sig_atomic_t.h * include/bits/types/sigset_t.h * include/bits/types/sigval_t.h: New wrappers. * signal/sigsetops.h * bits/siginfo.h * bits/sigset.h * sysdeps/unix/sysv/linux/bits/siginfo.h * sysdeps/unix/sysv/linux/bits/sigset.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h * sysdeps/unix/sysv/linux/mips/bits/siginfo.h * sysdeps/unix/sysv/linux/s390/bits/siginfo.h * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h * sysdeps/unix/sysv/linux/tile/bits/siginfo.h * sysdeps/unix/sysv/linux/x86/bits/siginfo.h: Deleted. * signal/Makefile, sysdeps/unix/sysv/linux/Makefile: Update lists of installed headers. * posix/bits/types.h: Define __sig_atomic_t here. * signal/signal.h: Use the new bits headers; no need to handle __need_sig_atomic_t nor __need_sigset_t. Don't use __sigmask to define sigmask. * include/signal.h: No need to handle __need_sig_atomic_t nor __need_sigset_t. Don't define __sigemptyset. * io/sys/poll.h, setjmp/setjmp.h * sysdeps/arm/sys/ucontext.h, sysdeps/generic/sys/ucontext.h * sysdeps/i386/sys/ucontext.h, sysdeps/m68k/sys/ucontext.h * sysdeps/mach/hurd/i386/bits/sigcontext.h * sysdeps/mips/sys/ucontext.h, sysdeps/powerpc/novmxsetjmp.h * sysdeps/pthread/bits/sigthread.h * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h * sysdeps/unix/sysv/linux/mips/sys/ucontext.h * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h * sysdeps/unix/sysv/linux/s390/sys/ucontext.h * sysdeps/unix/sysv/linux/sh/sys/ucontext.h * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h * sysdeps/unix/sysv/linux/tile/sys/ucontext.h * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Use bits/types/__sigset_t.h. * misc/sys/select.h, posix/spawn.h * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h * sysdeps/unix/sysv/linux/sys/epoll.h * sysdeps/unix/sysv/linux/sys/signalfd.h: Use bits/types/sigset_t.h. * resolv/netdb.h, rt/mqueue.h: Use bits/types/sigevent_t.h. * rt/aio.h: Use bits/types/sigevent_t.h and bits/sigevent-consts.h. * socket/sys/socket.h: Don't include bits/sigset.h. * login/utmp_file.c, shadow/lckpwdf.c, signal/sigandset.c * signal/sigisempty.c, stdlib/abort.c, sysdeps/posix/profil.c * sysdeps/posix/sigignore.c, sysdeps/posix/sigintr.c * sysdeps/posix/signal.c, sysdeps/posix/sigset.c * sysdeps/posix/sprofil.c, sysdeps/posix/sysv_signal.c * sysdeps/unix/sysv/linux/nptl-signals.h: Include sigsetops.h. * signal/sigaddset.c, signal/sigandset.c, signal/sigdelset.c * signal/sigorset.c, stdlib/abort.c, sysdeps/posix/sigignore.c * sysdeps/posix/signal.c, sysdeps/posix/sigset.c: __sigaddset, __sigandset, __sigdelset, __sigemptyset, __sigorset now return no value. * signal/sigaddset.c, signal/sigdelset.c, signal/sigismem.c Include <errno.h>, <signal.h>, and <sigsetops.h> instead of "sigsetops.h". * signal/sigsetops.c: Explicitly define __sigismember, __sigaddset, and __sigdelset as compatibility symbols. * signal/Versions: Correct commentary on __sigpause, __sigaddset, __sigdelset, __sigismember. * inet/rcmd.c: Include sigsetops.h. Convert old code using __sigblock/__sigsetmask to use __sigprocmask and friends.
2017-05-19Split up bits/sigstack.h.Joseph Myers
bits/sigstack.h contains four things: the legacy struct sigstack type, the preferred stack_t type, the SS_* enum values and macros for signal stack sizes. These vary in different ways between glibc configurations; in particular, the stack sizes vary much more than any of the other pieces. Furthermore, these pieces have different standard namespace rules for when they should be visible (not currently visible in conform/ results both because the relevant tests are XFAILed for sys/ucontext.h namespace issues, and because some of the expectations are incorrect in the same way as the headers, e.g. neither expectations nor headers reflect that current POSIX no longer has either the sigstack function or the sigstack structure). To reduce duplication of identical definitions, and facilitate namespace fixes without requiring the same feature test macro conditions to be repeated in many versions of the same header, this patch splits bits/sigstack.h up into four headers. It keeps the stack size macros, while new bits/types/struct_sigstack.h, bits/types/stack_t.h and bits/ss_flags.h are added for the other pieces. bits/types/struct_sigstack.h is the same everywhere, bits/types/stack_t.h has three variants different in the order of the structure elements (generic = MIPS Linux, and other Linux), and bits/ss_flags.h has generic and Linux variants. This patch includes the new headers everywhere that included <bits/sigstack.h>, so should cause no difference to what any public header defines. Subsequent namespace fixes would then remove or condition some of those includes. There should be no conflicts with Zack's changes to signal.h types, beyond the trivial conflict of both making additions to signal/Makefile's headers list; the two patches affect disjoint sets of types and other definitions. Tested for x86_64 and x86, and with build-many-glibcs.py. * bits/ss_flags.h: New file. * bits/types/stack_t.h: Likewise. * include/bits/types/struct_sigstack.h: Likewise. * signal/bits/types/struct_sigstack.h: Likewise. * sysdeps/unix/sysv/linux/bits/ss_flags.h: Likewise. * sysdeps/unix/sysv/linux/bits/types/stack_t.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h: Likewise. * signal/Makefile (headers): Add bits/types/struct_sigstack.h, bits/types/stack_t.h and bits/ss_flags.h. * signal/signal.h [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]: Include <bits/types/struct_sigstack.h>, <bits/types/stack_t.h> and <bits/ss_flags.h>. * bits/sigstack.h (struct sigstack): Remove. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigstack.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigstack.h (struct sigstack): Likewise. (stack_t): Likewise. (SS_ONSTACK): Likewise. (SS_DISABLE): Likewise. * sysdeps/arm/sys/ucontext.h: Include <bits/types/struct_sigstack.h>, <bits/types/stack_t.h> and <bits/ss_flags.h>. * sysdeps/generic/sys/ucontext.h: Likewise. * sysdeps/i386/sys/ucontext.h: Likewise. * sysdeps/m68k/sys/ucontext.h: Likewise. * sysdeps/mips/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h: Likewise. * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Likewise.
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
2016-09-23Installed-header hygiene (BZ#20366): stack_t.Zack Weinberg
sys/ucontext.h unconditionally uses stack_t, and it does not make sense to change that. But signal.h only declares stack_t under __USE_XOPEN_EXTENDED || __USE_XOPEN2K8. The actual definition is already in a bits header, bits/sigstack.h, but that header insists on only being included by signal.h, so we have to change that as well as all of the sys/ucontext.h variants. (Some but not all variants of bits/sigcontext.h, which sys/ucontext.h may also need, had already received this adjustment; for consistency, I made them all the same, even if that's not strictly necessary in some configurations.) bits/sigcontext.h and bits/sigstack.h also all need to receive multiple inclusion guards. * sysdeps/generic/sys/ucontext.h * sysdeps/arm/sys/ucontext.h * sysdeps/i386/sys/ucontext.h * sysdeps/m68k/sys/ucontext.h * sysdeps/mips/sys/ucontext.h * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h * sysdeps/unix/sysv/linux/arm/sys/ucontext.h * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h * sysdeps/unix/sysv/linux/mips/sys/ucontext.h * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h * sysdeps/unix/sysv/linux/s390/sys/ucontext.h * sysdeps/unix/sysv/linux/sh/sys/ucontext.h * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h * sysdeps/unix/sysv/linux/tile/sys/ucontext.h * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Include both bits/sigcontext.h and bits/sigstack.h. Fix grammar error in comment, if present. * bits/sigstack.h * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h * sysdeps/unix/sysv/linux/alpha/bits/sigstack.h * sysdeps/unix/sysv/linux/bits/sigstack.h * sysdeps/unix/sysv/linux/ia64/bits/sigstack.h * sysdeps/unix/sysv/linux/mips/bits/sigstack.h * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h * sysdeps/unix/sysv/linux/sparc/bits/sigstack.h * bits/sigcontext.h * sysdeps/mach/hurd/i386/bits/sigcontext.h * sysdeps/unix/sysv/linux/bits/sigcontext.h * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h: Add multiple inclusion guard. Permit inclusion by sys/ucontext.h as well as signal.h, if this was not already allowed. Request definition of size_t if necessary. Minimize semantically-null differences across files.
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers
2015-07-23ia64: sigaction.h: fix sa_flags orderingMike Frysinger
Since ia64 is little endian, sa_flags has to come before the padding when splitting it from 64bits to 32bits. Reported-by: Joseph Myers <joseph@codesourcery.com>
2015-07-21ia64: msg.h: fix msg_qnum/msg_qbytes typesMike Frysinger
These two fields have dedicated types, so change the ia64 header to match all the other arches. This fixes the conform test for msg.h.
2015-07-21ia64: stat.h: rename pad0 to __glibc_reserved0Mike Frysinger
This fixes the conform test for the stat.h header and makes it match all the other arches.
2015-07-21ia64: sifaction.h: change sa_flags to an intMike Frysinger
This fixes the conform test for the sigaction.h header and makes it match all the other arches.
2015-07-21ia64: siginfo.h: delete siginfo nameMike Frysinger
This fixes the conform test for the siginfo.h header and makes it match all the other arches.
2015-05-26struct stat is not posix conformSzabolcs Nagy
On 21/05/15 05:29, Siddhesh Poyarekar wrote: > On Wed, May 20, 2015 at 06:55:02PM +0100, Szabolcs Nagy wrote: >> i guess it's ok for consistency if i fix struct stat64 >> too to use __USE_XOPEN2K8. >> >> i will run some tests and come back with a patch > > I also think it would be appropriate to change this code in other > architectures (microblaze and nacl IIRC) to make all of them > consistent. It is a mechanical enough change IMO that all arch > maintainer acks is not necessary. > here is the patch with consistent __USE_XOPEN2K8 ok to commit? 2015-05-21 Szabolcs Nagy <szabolcs.nagy@arm.com> [BZ #18234] * conform/data/sys/stat.h-data (struct stat): Add tests for st_atim, st_mtim and st_ctim members. * sysdeps/nacl/bits/stat.h (struct stat, struct stat64): Make st_atim, st_ctim, st_mtim visible under __USE_XOPEN2K8 only. * sysdeps/unix/sysv/linux/generic/bits/stat.h (struct stat,): (struct stat64): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/stat.h (struct stat,): (struct stat64): Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/stat.h (struct stat,): (struct stat64): Likewise.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-08-04IA64: Move NPTL public headers to sysdeps/ia64/nptl/.Roland McGrath
2014-03-07Fix POSIX namespace for <bits/siginfo.h> (bug 16674).Joseph Myers
<bits/siginfo.h> causes symbols ILL_*, FPE_*, SEGV_* BUS_*, CLD_*, POLL_* and TRAP_* to be exposed in <signal.h> (and <sys/wait.h>), even though those symbols are not in non-XSI POSIX before POSIX.1-2008 and even in POSIX.1-2008 the TRAP_* symbols are XSI-only. This patch conditions the symbols appropriately in the various <bits/siginfo.h> implementations (various <signal.h> and <sys/wait.h> conformtest issues remain for standards other than POSIX (1995/6)). Tested x86_64. [BZ #16674] * bits/siginfo.h (ILL_ILLOPC): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (ILL_BADIADDR): Likewise. (ILL_BREAK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (FPE_DECOVF): Likewise. (FPE_DECDIV): Likewise. (FPE_DECERR): Likewise. (FPE_INVASC): Likewise. (FPE_INVDEC): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (SEGV_PSTKOVF): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (TRAP_BRANCH): Likewise. (TRAP_HWBKPT): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/mips/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/s390/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/tile/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (ILL_DBLFLT): Likewise. (ILL_HARDWALL): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/x86/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * conform/Makefile (test-xfail-POSIX/signal.h/conform): Remove. (test-xfail-POSIX/sys/wait.h/conform): Likewise.
2014-02-21Complete _BSD_SOURCE / _SVID_source followup cleanup.Joseph Myers
This patch completes the headers cleanup consequent on removal of _BSD_SOURCE and _SVID_SOURCE (apart from any subsequent deprecations): * #endif conditionals that referred to BSD or SVID are updated. * Redundant __USE_* tests in cases involving __USE_MISC are removed. This includes cases such as __USE_MISC || __USE_ISOC99, where __USE_MISC is redundant (because __USE_MISC is only ever defined in the default / _DEFAULT_SOURCE / _GNU_SOURCE case, when __USE_ISOC99 is also defined; the same applies to the non-XSI-extended POSIX versions), and cases involving __USE_GNU, where __USE_GNU is redundant (because if __USE_GNU is defined, so are the other __USE_* macros). There may well be other cases of __USE_FOO || __USE_BAR tests that could be simplified because one macro implies the other; this patch only addresses cases involving __USE_MISC. Tested x86_64. * bits/fcntl.h [__USE_MISC]: Remove redundant conditionals. * bits/sigaction.h [__USE_MISC]: Likewise. * bits/waitstatus.h: Update #endif comments. * ctype/ctype.h: Likewise. * dirent/dirent.h: Likewise. [__USE_MISC]: Remove redundant conditionals. * grp/grp.h: Update #endif comments. [__USE_GNU]: Remove redundant conditionals. [__USE_MISC]: Likewise. * inet/netinet/in.h [__USE_GNU]: Likewise. * io/sys/stat.h [__USE_MISC]: Likewise. * libio/bits/stdio-ldbl.h [__USE_MISC]: Likewise. * libio/bits/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * libio/bits/stdio2.h [__USE_MISC]: Likewise. * libio/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * math/bits/math-finite.h [__USE_MISC]: Likewise. * math/bits/mathcalls.h [__USE_MISC]: Likewise. * math/math.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. * misc/sys/uio.h: Update #endif comments. * posix/bits/unistd.h [__USE_MISC]: Remove redundant conditionals. * posix/glob.h [__USE_MISC]: Likewise. * posix/sys/types.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/sys/wait.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/unistd.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * pwd/pwd.h [__USE_GNU]: Likewise. [__USE_MISC]: Likewise. * resolv/netdb.h [__USE_GNU]: Likewise. * signal/signal.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * stdlib/stdlib.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. [__USE_GNU]: Likewise. * string/bits/string2.h [__USE_MISC]: Likewise. * string/string.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/m68k/m680x0/fpu/bits/mathinline.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/fcntl.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/unix/sysv/linux/bits/in.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/socket.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/m68k/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/x86/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/x86/bits/string.h: Update #endif comments. * sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC]: Remove redundant conditionals. * time/sys/time.h: Update #endif comments. * time/time.h: Likewise. [__USE_MISC]: Remove redundant conditionals.
2014-02-16ia64: relocate out of ports/ subdirMike Frysinger
2012-01-07Remove IA-64 supportUlrich Drepper
2011-05-29Same change for the other siginfi.h filesUlrich Drepper
2011-04-01Rename open_by_handle to open_by_handle_at.Andreas Schwab
2011-04-01Define O_PATH.Ulrich Drepper
2011-04-01Add support for name_to_handle_at and open_by_handle.Ulrich Drepper
2011-01-17Define MADV_NOHUGEPAGE.Ulrich Drepper
2011-01-17Define MADV_HUGEPAGE.Ulrich Drepper
2010-06-14Define F_SETPIPE_SZ and F_GETPIPE_SZ.Ulrich Drepper
2010-01-11Fix double-inclusion problem of bits/stat.h.Ulrich Drepper
2010-01-10FIx up signal.h for XPG7.Ulrich Drepper
2010-01-09Add support for XPG7 testing.Ulrich Drepper
The header conformance testing code needed extending for XPG7. This exposed a few bugs in the headers. There are more changes to come.
2009-12-11Redefine O_SYNC and O_DSYNC to match 2.6.33+ kernels.Ulrich Drepper
2009-11-19Follow kernel F_OWNER_{GID -> PGRP} change.Ulrich Drepper
But maintain compatiblity for 2.11.
2009-11-17Change misleading names of parameters of sync_file_range.Ulrich Drepper
2009-11-17Add missing Linux MADV_* definitions.Ulrich Drepper