The various sys/ucontext.h headers include <signal.h> and all the
headers split out of <bits/sigstack.h>. (Except that the powerpc
version does not include <signal.h>.)
None of the standard versions defining ucontext.h require or permit
such inclusions; rather, they all say that the stack_t and sigset_t
types from signal.h are defined. This patch fixes the headers to
include just the bits/ headers for those types (and the existing
includes of bits/sigcontext.h). Since bits/types/sigset_t.h is now
being included instead of bits/types/__sigset_t.h, __sigset_t uses in
the headers are replaced by direct use of the public sigset_t type.
sysdeps/unix/sysv/linux/x86/bits/sigcontext.h was relying on the prior
inclusion of <signal.h> to define types such as __uint32_t, so gets a
bits/types.h include added to provide those types.
Although one could keep some or all of the includes under a __USE_MISC
conditional, that seems unnecessary to me, especially given the lack
of a <signal.h> include in the powerpc version meaning that portable
programs already cannot rely on such an include.
Tested for x86_64 and x86, and with build-many-glibcs.py. As with
other such fixes, more namespace issues remain so this does not permit
any XFAILs to be removed or bugs to be closed.
[BZ #21457]
* sysdeps/arm/sys/ucontext.h: Do not include <signal.h>,
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/generic/sys/ucontext.h: Do not include <signal.h>,
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/i386/sys/ucontext.h: Do not include <signal.h>,
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/m68k/sys/ucontext.h: Do not include <signal.h>,
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/mips/sys/ucontext.h: Do not include <signal.h>,
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h>.
* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Do not include
<bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>.
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
* sysdeps/unix/sysv/linux/x86/bits/sigcontext.h: Include
<bits/types.h>.
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Do not include
<signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or
<bits/ss_flags.h>. Include <bits/types/sigset_t.h> instead of
<bits/types/__sigset_t.h>.
(ucontext_t): Use sigset_t instead of __sigset_t.
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.
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.
This patch implements the most straightforward part of fixing
namespace issues for sys/ucontext.h and related headers: where fields
in sys/ucontext.h or bits/sigcontext.h are named "reserved", "padding"
or similar, they are renamed to use the __glibc_reserved* naming
convention. It does not change fields with a leading underscore, or
even those with a prefix such as uc_ or sc_. It only fixes a small
part of bug 21457, so no XFAILs are removed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
[BZ #21457]
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h
[_MIPS_SIM != _ABIO32] (mcontext_t): Rename field reserved to
__glibc_reserved1.
* sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
(struct _fpx_sw_bytes): Rename field padding to __glibc_reserved1.
(struct _fpxreg): Likewise.
[!__x86_64__] (struct _fpstate): Rename field reserved to
__glibc_reserved1. Rename field padding to __glibc_reserved2.
[__x86_64__] (struct _fpstate): Rename field padding to
__glibc_reserved1.
(struct _xsave_hdr): Rename field reserved1 to __glibc_reserved1.
Rename field reserved2 to __glibc_reserved2.
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h
[__x86_64__] (struct _libc_fpxreg): Rename field padding to
__glibc_reserved1.
[__x86_64__] (struct _libc_fpstate): Rename field padding to
__glibc_reserved1.
This patch consolidates all Linux setrlimit and getrlimit on the default
sysdeps/unix/sysv/linux/{set,get}rlimit{64}.c. It contains two exceptions:
1. mips32 and mips64n32 which requires a versioned symbol for GLIBC 2.19
and higher due a broken RLIM64_INFINITY constant.
2. sparc32 does not define a compat symbol for getrlimit64 for old 2GB
limit. I am not sure if it is required, but a RLIM_INFINITY fix [1]
change its definition without adding a compat symbol. This patch does
not aim to address this possible issue, it follow current symbol
export.
The default implementation uses prlimit64 for 64 bit rlim_t ({set,get}rlimit64)
and if it fails with ENOSYS it fall back to {get,set}rlimit syscall. This
code path is only used on kernel older than 2.6.36 (basically now only x86)
and I avoid to user __ASSUME_PRLIMTI64 to simplify the implementation. Once
x86 moves to be on par with other architectures regarding minimum kernel
supported we can get rid of using old syscalls and default path.
A new type size define is added, __RLIM_T_MATCHES_RLIM64_T, where is set as
default for 64 bits ports. This allows the default implementation to avoid
{get,set}rlimit building and alias {get,set}rlimit64 to {get,set}rlimit.
Checked on x86_64, i386, armhf, aarch64, and powerpc64le. I also did a
sanity build plus check-abi on all other supported architectures.
[1] Commit 9c96ff2385
Adhemerval Zanella <adhemerval.zanella@linaro.org>
Yury Norov <ynorov@caviumnetworks.com>
* bits/typesizes.h (__RLIM_T_MATCHES_RLIM64_T): define.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
(__RLIM_T_MATCHES_RLIM64_T): Likewise.
* sysdeps/unix/sysv/linux/generic/bits/typesizes.h
(__RLIM_T_MATCHES_RLIM64_T): Likewise.
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h [__s390x__]
(__RLIM_T_MATCHES_RLIM64_T): Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
[__arch64__ || __sparcv9] (__RLIM_T_MATCHES_RLIM64_T): Likewise.
* sysdeps/unix/sysv/linux/x86/bits/typesizes.h [__86_64__]
(__RLIM_T_MATCHES_RLIM64_T): Likewise.
* sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = resource]
(sysdep_routines): Remove oldgetrlimit64.
* sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = resource]
(sysdep_routines): Likewise.
* sysdeps/unix/sysv/linux/m68k/Makefile [$(subdir) = resource]
(sysdep_routines): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
[$(subdir) = resource] (sysdep_routines): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/Makefile
[$(subdir) = resource] (sysdep_routines): Likewise.
* sysdeps/unix/sysv/linux/arm/getrlimit64.c: Remove file.
* sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/hppa/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/m68k/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/oldgetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/oldgetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/sh/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c: Likewise.
* sysdeps/sysv/linux/generic/wordsize-32/syscalls.list: Remove
setrlimit and getrlimit.
* sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/getrlimit.c: New file.
* sysdeps/unix/sysv/linux/sparc/getrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/setrlimit.c: Likewise.
* sysdeps/unix/sysv/linux/getrlimit64.c (__getrlimit64): Handle
__RLIM_T_MATCHES_RLIM64_T and add alias if defined.
(__old_getrlimit64): Add compatibility symbol.
* sysdeps/unix/sysv/linux/setrlimit64.c (__setrlimit): Likewise.
Since x86-64 and x32 use the same set of sched_XXX system call interface:
[hjl@gnu-6 linux-stable]$ grep sched_
arch/x86/entry/syscalls/syscall_64.tbl
24 common sched_yield sys_sched_yield
142 common sched_setparam sys_sched_setparam
143 common sched_getparam sys_sched_getparam
144 common sched_setscheduler sys_sched_setscheduler
145 common sched_getscheduler sys_sched_getscheduler
146 common sched_get_priority_max sys_sched_get_priority_max
147 common sched_get_priority_min sys_sched_get_priority_min
148 common sched_rr_get_interval sys_sched_rr_get_interval
203 common sched_setaffinity sys_sched_setaffinity
204 common sched_getaffinity sys_sched_getaffinity
314 common sched_setattr sys_sched_setattr
315 common sched_getattr sys_sched_getattr
[hjl@gnu-6 linux-stable]$
__cpu_mask should be unsigned long long, instead of unsigned long, for
x32. This patch adds __CPU_MASK_TYPE so that each architecture can
define the proper type for __cpu_mask.
[BZ #19313]
* bits/typesizes.h (__CPU_MASK_TYPE): New.
* sysdeps/mach/hurd/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
* sysdeps/nacl/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/generic/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/x86/bits/typesizes.h (__CPU_MASK_TYPE):
* sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace
unsigned long int with __CPU_MASK_TYPE.
X86 struct siginfo in kernel 3.19 has been changed by
commit ee1b58d36aa1b5a79eaba11f5c3633c88231da83
Author: Qiaowei Ren <qiaowei.ren@intel.com>
Date: Fri Nov 14 07:18:19 2014 -0800
mpx: Extend siginfo structure to include bound violation information
This patch adds new fields about bound violation into siginfo
structure. si_lower and si_upper are respectively lower bound
and upper bound when bound violation is caused.
This patch updates x86 struct siginfo to enable GDB with MPX support.
[BZ #18696]
* sysdeps/unix/sysv/linux/x86/bits/siginfo.h (_sigfault): Add
si_addr_bnd.
(si_lower): New.
(si_upper): Likewise.
* sysdeps/unix/sysv/linux/s390/bits/mman.h: Include
<bits/mman-linux.h>.
(MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value
is fine.
* sysdeps/unix/sysv/linux/sh/bits/mman.h: Move include of
<bits/mman-linux.h> to end of file.
(MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value
is fine.
* sysdeps/unix/sysv/linux/x86/bits/mman.h: Move include of
<bits/mman-linux.h> to end of file.
(MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value
is fine.
* sysdeps/unix/sysv/linux/sparc/bits/mman.h: Move include of
<bits/mman-linux.h> to end of file.
* sysdeps/unix/sysv/linux/bits/mman-linux.h [!MCL_CURRENT]
(MCL_CURRENT, MCL_FUTURE): Define here.
* sysdeps/unix/sysv/linux/bits/mman-linux.h: New file, with
Linux common definitions.
* sysdeps/unix/sysv/linux/sh/bits/mman.h: Remove all defines
provided by bits/mman-linux.h and include <bits/mman-linux.h>.
* sysdeps/unix/sysv/linux/x86/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/x86/bits/fcntl.h (__O_LARGEFILE)
[!__x86_64]: Do not define, take value from <bits/fcntl-linux.h>.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (__O_LARGEFILE):
[__WORDSIZE != 64]: Likewise.
* sysdeps/unix/sysv/linux/generic/bits/fcntl.h: (__O_LARGEFILE)
[__WORDSIZE != 64]: Do not define, take value from
<bits/fcntl-linux.h>.
Create a new bits/fcntl-linux.h that contains Linux generic code and a
include it from the architecture specific bits/fcntl.h.
Architectures done: x86, SPARC, s390