about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux
Commit message (Collapse)AuthorAgeFilesLines
* Move remaining S390 code out of nptl/.Roland McGrath2014-06-2625-0/+1449
|
* S390: Consolidate NPTL/non versions of vforkRoland McGrath2014-06-265-3/+120
|
* S390: Consolidate NPTL/non versions of cloneRoland McGrath2014-06-262-4/+0
|
* AArch64: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2620-209/+0
|
* MIPS: Consolidate NPTL/non versions of cloneRoland McGrath2014-06-252-10/+0
|
* Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.Joseph Myers2014-06-253-56/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes conditionals on __ASSUME_O_CLOEXEC, and on O_CLOEXEC being defined, in sysdeps/unix/sysv/linux/, now that O_CLOEXEC support can be unconditionally assumed. The patch is conservative in what it changes and further followup cleanups may be possible. It may be possible to remove dl-opendir.c, but the patch does not do so, just removing a redundant undefine and redefine of __ASSUME_O_CLOEXEC. Also, __ASSUME_O_CLOEXEC is defined unconditionally for Hurd as well as Linux. Thus, if we decide that O_CLOEXEC support is a required feature of any glibc port, we could remove __ASSUME_O_CLOEXEC and all conditionals on it throughout glibc, rather than just cleaning up sysdeps/unix/sysv/linux/. Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/dl-opendir.c (__ASSUME_O_CLOEXEC): Do not undefine and redefine. * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs) [O_CLOEXEC]: Make code unconditional. (__get_nprocs) [!O_CLOEXEC]: Remove conditional code. * sysdeps/unix/sysv/linux/shm_open.c: Do not include <kernel-features.h>. [O_CLOEXEC && !__ASSUME_O_CLOEXEC] (have_o_cloexec): Remove conditional variable definition. (shm_open) [O_CLOEXEC]: Make code unconditional. (shm_open) [!O_CLOEXEC || !__ASSUME_O_CLOEXEC]: Remove conditional code.
* Remove stray includes of kernel-features.h.Joseph Myers2014-06-25107-162/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that files using __ASSUME_* macros have been made by <https://sourceware.org/ml/libc-alpha/2014-06/msg00543.html> to include <kernel-features.h> directly, any include from a file not using __ASSUME_* macros can safely be removed (as there will no longer be some other file relying on indirect inclusion via a header from which the include is being removed). This patch removes such unnecessary kernel-features.h includes. Tested x86_64 that disassembly of installed shared libraries is unchanged by this patch, except for line numbers in calls to __assert_fail from libc.so and ld.so. 2014-06-23 Joseph Myers <joseph@codesourcery.com> * nptl/createthread.c: Don't include kernel-features.h. * nptl/pthread_cancel.c: Likewise. * nptl/pthread_condattr_setclock.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pt-raise.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_kill.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c: Likewise. * nptl/sysdeps/unix/sysv/linux/raise.c: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_create.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_delete.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_getoverr.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_gettime.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_routines.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_settime.c: Likewise. * nscd/gai.c: Likewise. * nss/nss_db/db-open.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/sh/nptl/tls.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/vfork.S: Likewise. * sysdeps/unix/sysv/linux/adjtime.c: Likewise. * sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise. * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/check_pf.c: Likewise. * sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise. * sysdeps/unix/sysv/linux/clock_getres.c: Likewise. * sysdeps/unix/sysv/linux/clock_gettime.c: Likewise. * sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise. * sysdeps/unix/sysv/linux/clock_settime.c: Likewise. * sysdeps/unix/sysv/linux/dl-execstack.c: Likewise. * sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise. * sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise. * sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise. * sysdeps/unix/sysv/linux/generic/poll.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c: Likewise. * sysdeps/unix/sysv/linux/getcwd.c: Likewise. * sysdeps/unix/sysv/linux/getpagesize.c: Likewise. * sysdeps/unix/sysv/linux/getsysstats.c: Likewise. * sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise. * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise. * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. * sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise. * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise. * sysdeps/unix/sysv/linux/ia64/system.c: Likewise. * sysdeps/unix/sysv/linux/if_index.c: Likewise. * sysdeps/unix/sysv/linux/ifaddrs.c: Likewise. * sysdeps/unix/sysv/linux/ifreq.c: Likewise. * sysdeps/unix/sysv/linux/ldsodefs.h: Likewise. * sysdeps/unix/sysv/linux/lutimes.c: Likewise. * sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise. * sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/mmap64.c: Likewise. * sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise. * sysdeps/unix/sysv/linux/pread.c: Likewise. * sysdeps/unix/sysv/linux/pread64.c: Likewise. * sysdeps/unix/sysv/linux/prof-freq.c: Likewise. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/mmap.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise. * sysdeps/unix/sysv/linux/s390/system.c: Likewise. * sysdeps/unix/sysv/linux/sh/pread.c: Likewise. * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise. * sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/sigpending.c: Likewise. * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c: Likewise. * sysdeps/unix/sysv/linux/sparc/system.c: Likewise. * sysdeps/unix/sysv/linux/syslog.c: Likewise. * sysdeps/unix/sysv/linux/system.c: Likewise. * sysdeps/unix/sysv/linux/testrtsig.h: Likewise. * sysdeps/unix/sysv/linux/timespec_get.c: Likewise. * sysdeps/unix/sysv/linux/ttyname.c: Likewise. * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise. * sysdeps/unix/sysv/linux/utimensat.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/xstatconv.h: Likewise.
* SPARC: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2530-0/+0
|
* Remove __ASSUME_XFS_RESTRICTED_CHOWN.Joseph Myers2014-06-252-34/+0
| | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_XFS_RESTRICTED_CHOWN macro, now it can be presumed to be defined unconditionally. I'm not sure if what's left of __statfs_chown_restricted is actually useful (if not, a followup could remove it), but I left it there to keep the patch conservative and avoid changing the code generated for glibc. Tested x86_64 that the disassembly of installed shared libraries is unchanged by the patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro. * sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted) [__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional. (__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]: Remove conditional code.
* ARM: Add support for AT_HWCAP2 in _dl_procinfoWill Newton2014-06-252-28/+44
| | | | | | | | | | | | | | | | | | | Add support for the new HWCAP2 values for ARMv8 added in the 3.15 kernel. Tested using QEMU which supports these extensions. ChangeLog: 2014-06-25 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/arm/dl-procinfo.c (_dl_arm_cap_flags): Add HWCAP2 values. * sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT): Increase to 37. (_DL_HWCAP_LAST): New define. (_DL_HWCAP2_LAST): New define. (_dl_procinfo): Add support for printing AT_HWCAP2 entries. (_dl_string_hwcap): Use _dl_hwcap_string.
* Remove __ASSUME_UTIMENSAT.Joseph Myers2014-06-252-88/+1
| | | | | | | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_UTIMENSAT macro, now it can be unconditionally assumed to be true. This shows that the only live uses of __ASSUME_UTIMES are in utimes.c and they are only live for hppa. I intend a followup patch to make __ASSUME_UTIMES into an hppa-specific macro (not used or defined outside sysdeps/unix/sysv/linux/hppa/). Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMENSAT): Remove macro. * sysdeps/unix/sysv/linux/futimes.c: Do not include <kernel-features.h>. [__NR_utimensat && !__ASSUME_UTIMENSAT] (miss_utimensat): Remove conditional variable definition. (__futimes): Update comment. (__futimes) [__ASSUME_UTIMENSAT]: Make code unconditional. (__futimes) [!__ASSUME_UTIMENSAT]: Remove conditional code.
* Remove __ASSUME_COMPLETE_READV_WRITEV.Joseph Myers2014-06-253-52/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_COMPLETE_READV_WRITEV kernel-features.h macro, now that it can be unconditionally assumed to be true. (The relevant kernel feature was added some time between 2.0 and 2.2, and this macro is only used in sysdeps/unix/sysv/linux/.) Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_COMPLETE_READV_WRITEV): Remove macro. * sysdeps/unix/sysv/linux/readv.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. * sysdeps/unix/sysv/linux/writev.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
* x86: Consolidate unnecessary nptl/ subdirectories.Roland McGrath2014-06-242-0/+6
|
* Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac.Joseph Myers2014-06-2416-120/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the process of making non-ex-ports architectures follow the preferred sysdeps practices followed by ex-ports architectures - that is, putting things in architecture-specific sysdeps files rather than having architecture-specific cases in architecture-independent files - this patch moves architecture cases out of sysdeps/unix/sysv/linux/configure.ac into (new or existing) configure fragments for each architecture. (In the case of the arch_minimum_kernel setting for x32, sysdeps/unix/sysv/linux/x86_64/x32/configure already has such a setting so the setting in sysdeps/unix/sysv/linux/configure.ac was a duplicate that could just be removed - though I haven't tested for x32.) Tested for x86_64 and x86 that the patch causes no changes to the installed shared libraries or ldd (or any part of the installation except for the parts that always change because the files contain timestamps - nscd and static libraries). * sysdeps/unix/sysv/linux/configure.ac: Remove cases for individual architectures. * sysdeps/unix/sysv/linux/configure: Regenerated. * sysdeps/unix/sysv/linux/i386/configure.ac: New file. * sysdeps/unix/sysv/linux/i386/configure: New generated file. * sysdeps/unix/sysv/linux/powerpc/configure.ac (ldd_rewrite_script): Define variable. * sysdeps/unix/sysv/linux/powerpc/configure: Regenerated. * sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/configure: New generated file. * sysdeps/unix/sysv/linux/s390/configure.ac: New file. * sysdeps/unix/sysv/linux/s390/configure: New generated file. * sysdeps/unix/sysv/linux/sh/configure.ac: New file. * sysdeps/unix/sysv/linux/sh/configure: New generated file. * sysdeps/unix/sysv/linux/sparc/configure.ac: New file. * sysdeps/unix/sysv/linux/sparc/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/configure: New generated file.
* Remove an unused variable in fstatvfs.Roland McGrath2014-06-231-1/+0
|
* powerpc: Consolidate nptl/ subdirectories under linux/....Roland McGrath2014-06-2358-736/+0
|
* MIPS: Move NPTL public headers to sysdeps/mips/nptl/.Roland McGrath2014-06-233-273/+0
|
* m68k: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2333-215/+0
|
* SH: Consolidate nptl/ subdirectories under linux/.....Roland McGrath2014-06-2314-0/+0
|
* Update headers for Linux 3.15.Joseph Myers2014-06-232-0/+9
| | | | | | | | | | | | | | | | | | This patch updates glibc headers for changes / new definitions in Linux 3.15. In the course of my review I noticed that IPV6_PMTUDISC_INTERFACE was absent from glibc despite the inclusion of IP_PMTUDISC_INTERFACE; I added it along with IP_PMTUDISC_OMIT and IPV6_PMTUDISC_OMIT. I did not add FALLOC_FL_NO_HIDE_STALE given the kernel header comment that it is reserved. Tested x86_64. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] (FALLOC_FL_COLLAPSE_RANGE): New macro. [__USE_GNU] (FALLOC_FL_ZERO_RANGE): Likewise. * sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_OMIT): Likewise. (IPV6_PMTUDISC_INTERFACE): Likewise. (IPV6_PMTUDISC_OMIT): Likewise.
* Move linux bits/ files out of nptl/.Roland McGrath2014-06-202-18/+138
|
* Remove ARM __ASSUME_SIGFRAME_V2.Joseph Myers2014-06-214-59/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes ARM __ASSUME_SIGFRAME_V2 now that the 2.6.18-and-later signal frame layout can be assumed, renaming the affected functions accordingly now only one version of them is needed in glibc. (sigrestorer.S did not in fact include <kernel-features.h> and it appears that, unlike other such cases, it didn't get the header indirectly, so the v1 functions would have been compiled in even when sigaction.c didn't reference them.) (alpha and hppa also have architecture-specific __ASSUME_* macros that should now be removed: __ASSUME_FDATASYNC and __ASSUME_LWS_CAS respectively. I don't have any plans to do anything on that myself.) Tested on ARM. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_SIGFRAME_V2): Remove macro. * sysdeps/unix/sysv/linux/arm/sigrestorer.S: Update comment. [!__ASSUME_SIGFRAME_V2]: Remove conditional code. (__default_sa_restorer_v2): Rename to __default_sa_restorer. (__default_rt_sa_restorer_v2): Rename to __default_rt_sa_restorer. * sysdeps/unix/sysv/linux/arm/sigaction.c (__default_sa_restorer): Declare as function. Remove conditional macro definitions. (__default_rt_sa_restorer): Likewise. (__default_sa_restorer_v1): Remove declaration. (__default_sa_restorer_v2): Likewise. (__default_rt_sa_restorer_v1): Likewise. (__default_rt_sa_restorer_v2): Likewise. * sysdeps/unix/sysv/linux/arm/Versions (GLIBC_PRIVATE): Remove __default_sa_restorer_v1, __default_rt_sa_restorer_v1, __default_sa_restorer_v2 and __default_rt_sa_restorer_v2.
* Move remaining SPARC code out of nptl/.Roland McGrath2014-06-2013-0/+626
|
* Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.Joseph Myers2014-06-201-37/+2
| | | | | | | | | | | | | | | | | | | | | | This patch removes conditionals on __ASSUME_SOCK_CLOEXEC, and on SOCK_CLOEXEC being defined, in Linux-specific code, now that all supported Linux kernel versions can be assumed to have this functionality. (The macro is also used in OS-independent code and is not defined for Hurd.) Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include <kernel-features.h>. (init_mq_netlink): Remove conditional have_sock_cloexec definitions. Remove code conditional on have_sock_cloexec < 0. (init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code. (init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise. * sysdeps/unix/sysv/linux/opensock.c: Do not include <kernel-features.h>. (__opensock) [SOCK_CLOEXEC]: Make code unconditional. (__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.
* Remove __ASSUME_F_GETOWN_EX.Joseph Myers2014-06-202-21/+1
| | | | | | | | | | | | | | | | This patch removes __ASSUME_F_GETOWN_EX now it can be assumed to be true unconditionally. Tested x86_64 that disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_F_GETOWN_EX): Remove macro. * sysdeps/unix/sysv/linux/fcntl.c: Do not include <kernel-features.h>. (miss_F_GETOWN_EX): Remove variable or macro. (do_fcntl): Do not check miss_F_GETOWN_EX. (do_fcntl) [!__ASSUME_F_GETOWN_EX]: Remove conditional code.
* Remove __ASSUME_AT_RANDOM.Joseph Myers2014-06-202-44/+7
| | | | | | | | | | | | | | This patch removes __ASSUME_AT_RANDOM now it can be assumed to be true unconditionally. Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_RANDOM): Remove macro. * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard) [!__ASSUME_AT_RANDOM]: Remove conditional code. (_dl_setup_pointer_guard) [!__ASSUME_AT_RANDOM]: Likewise.
* Remove __ASSUME_ADJ_OFFSET_SS_READ.Joseph Myers2014-06-202-23/+2
| | | | | | | | | | | | | | | | This patch removes the __ASSUME_ADJ_OFFSET_SS_READ macro (and conditionals on whether ADJ_OFFSET_SS_READ is defined), now it can be unconditionally assumed to be true and ADJ_OFFSET_SS_READ can be assumed to be defined. Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_ADJ_OFFSET_SS_READ): Remove macro. * sysdeps/unix/sysv/linux/adjtime.c (ADJTIME) [ADJ_OFFSET_SS_READ]: Make code unconditional. (ADJTIME) [!ADJ_OFFSET_SS_READ]: Remove conditional code.
* Remove __ASSUME_ATFCTS conditionals in sysdeps/unix/sysv/linux/.Joseph Myers2014-06-2028-1572/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up for __ASSUME_ATFCTS now always being true for the supported Linux kernel versions by removing conditional code in sysdeps/unix/sysv/linux. Several fchownat.c files that were only present because of differences in the fallback syscalls used (depending on the architecture-specific names of chown-related syscalls for 32-bit uids) are removed. Files that looks like they could be replaced by syscalls.list entries have the standard "Consider moving to syscalls.list." comment (see bug 14138) added. Conditionals on the relevant __NR_* syscall numbers being defined are also removed, since my analysis indicated that the relevant syscalls are always defined for all relevant kernel versions using any affected file. Much of the removed fallback code had unbounded stack allocations, so this reduces the number of cases to consider for anyone reviewing uses of alloca and VLAs in glibc. There remain tests of __ASSUME_ATFCTS in io/openat.c (to determine whether to define __have_atfcts) and sysdeps/posix/getcwd.c (which also uses __have_atfcts); thus, the definition of __ASSUME_ATFCTS remains in kernel-features.h. The logical condition relevant there is whether openat64_not_cancel_3 is known to work. Hurd doesn't use this version of getcwd at all, so the conditionals in getcwd.c are always true in glibc. However, this code is also used in gnulib. So the best way to deal with the conditionals there may be for gnulib people to deal with merging all relevant changes in both directions between the glibc and gnulib versions of this file, at the end of which the openat conditionals should be in whatever form is best for gnulib, and hardcoded in the _LIBC case to having openat supported. Tested by comparing before-and-after disassembly of installed (stripped) shared libraries, on x86_64 and x86. On x86 the patch made no change to the disassembly; on x86_64, the only changes were in readlinkat, where formerly the return value from the readlinkat syscall was stored in an int variable before being converted to ssize_t for the return, and now the return value is returned directly without truncation to int. I think it's clearly correct not to truncate the return value (although I also think the truncation would not have been a user-visible bug because the kernel would never have returned a value it could have affected). * include/fcntl.h (__atfct_seterrno): Remove prototype. (__atfct_seterrno_2): Likewise. * sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c: Do not include <kernel-features.h>. (__ASSUME_ATFCTS): Do not undefine and redefine. * sysdeps/unix/sysv/linux/alpha/fxstatat.c [__ASSUME_ATFCTS] (__have_atfcts): Remove conditional definition. (__fxstatat([__NR_fstatat64]: Make code unconditional. (__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code and code unreachable if [__ASSUME_ATFCTS]. * sysdeps/unix/sysv/linux/dl-fxstatat64.c (__ASSUME_ATFCTS): Do not undefine and redefine. * sysdeps/unix/sysv/linux/faccessat.c: Do not include <kernel-features.h>. (faccessat) [__NR_faccessat]: Make code unconditional. (faccessat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/fchmodat.c: Do not include <kernel-features.h>. (fchmodat) [__NR_fchmodat]: Make code unconditional. (fchmodat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/fchownat.c: Do not include <kernel-features.h>. (fchownat) [__NR_fchownat]: Make code unconditional. (fchownat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/futimesat.c: Do not include <kernel-features.h>. (futimesat) [__NR_futimesat]: Make code unconditional. (futimesat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/fxstatat.c: Do not include <kernel-features.h>. (__fxstatat) [__NR_newfstatat]: Make code unconditional. (__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/fxstatat64.c: Do not include <kernel-features.h>. (__fxstatat64) [__NR_fstatat64]: Make code unconditional. (__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/i386/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/i386/fxstatat.c: Do not include <kernel-features.h>. (__fxstatat) [__NR_fstatat64]: Make code unconditional. (__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/linkat.c: Do not include <kernel-features.h>. (linkat) [__NR_linkat]: Make code unconditional. (linkat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/m68k/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c: Do not include <kernel-features.h>. (__fxstatat64) [__NR_newfstatat]: Make code unconditional. (__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/mkdirat.c: Do not include <kernel-features.h>. (mkdirat) [__NR_mkdirat]: Make code unconditional. (mkdirat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/openat.c: Do not include <kernel-features.h>. [!__ASSUME_ATFCTS] (__atfct_seterrno): Remove function. [!__ASSUME_ATFCTS] (__have_atfcts): Remove variable. (OPENAT_NOT_CANCEL) [__NR_openat]: Make code unconditional. (OPENAT_NOT_CANCEL) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/powerpc/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/readlinkat.c: Do not include <kernel-features.h>. (readlinkat) [__NR_readlinkat]: Make code unconditional. (readlinkat) [!__ASSUME_ATFCTS]: Remove conditional code. Return result of INLINE_SYSCALL directly, not via int variable. * sysdeps/unix/sysv/linux/renameat.c: Do not include <kernel-features.h>. [!__ASSUME_ATFCTS] (__atfct_seterrno_2): Remove function. (renameat) [__NR_renameat]: Make code unconditional. (renameat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/sh/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c (__ASSUME_ATFCTS): Do not undefine and redefine. * sysdeps/unix/sysv/linux/symlinkat.c: Do not include <kernel-features.h>. (symlinkat) [__NR_symlinkat]: Make code unconditional. (symlinkat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/unlinkat.c: Do not include <kernel-features.h>. (unlinkat) [__NR_unlinkat]: Make code unconditional. (unlinkat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c (__ASSUME_ATFCTS): Do not undefine and redefine. * sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: Do not include <kernel-features.h>. (__fxstatat) [__NR_newfstatat]: Make code unconditional. (__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code. * sysdeps/unix/sysv/linux/xmknodat.c: Do not include <kernel-features.h>. (__xmknodat) [__NR_mknodat]: Make code unconditional. (__xmknodat) [!__ASSUME_ATFCTS]: Remove conditional code.
* m68k: Consolidate NPTL/non versions of cloneAndreas Schwab2014-06-142-6/+0
|
* m68k: Consolidate NPTL/non versions of vforkAndreas Schwab2014-06-144-85/+21
|
* S390: Convert fork.c to arch-fork.hRoland McGrath2014-06-131-0/+29
|
* Consolidate sparc clone, fork, and vfork implementations.David S. Miller2014-06-135-21/+59
| | | | | | | | | | | | | | | | | | * nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Moved ... * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: ... here. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Moved ... * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: ... here. * sysdeps/unix/sysv/linux/sparc/fork.S: Delete. * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start): Remove RESET_PID cpp guards. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start): Remove RESET_PID cpp guards. * sysdeps/unix/sysv/linux/sparc/vfork.S: Delete.
* Remove x86 assembler rwlock codeAndi Kleen2014-06-1320-2204/+0
| | | | | | | | | | With the recent tuning the C version of rwlocks is basically the same performance as the x86 assembler version for uncontended locks (with a a few cycles near the run-to-run variability). For others it should not matter anyways. So remove the assembler code and use the C version like other architectures.
* Add adaptive elision to rwlocksAndi Kleen2014-06-139-0/+18
| | | | | | | | | | | | | | | | | | | This patch relies on the C version of the rwlocks posted earlier. With C rwlocks it is very straight forward to do adaptive elision using TSX. It is based on the infrastructure added earlier for mutexes, but uses its own elision macros. The macros are fairly general purpose and could be used for other elision purposes too. This version is much cleaner than the earlier assembler based version, and in particular implements adaptation which makes it safer. I changed the behavior slightly to not require any changes in the test suite and fully conform to all expected behaviors (generally at the cost of not eliding in various situations). In particular this means the timedlock variants are not elided. Nested trylock aborts.
* get_nprocs: Only return explictly set cache values (BZ #16996)Meador Inge2014-06-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation of __get_nprocs uses a stactic variable to cache the value of the current number of processors. The caching breaks when 'time (NULL) == 0': $ cat nproc.c #include <stdio.h> #include <time.h> #include <sys/time.h> int main(int argc, char *argv[]) { time_t t; struct timeval tv = {0, 0}; printf("settimeofday({0, 0}, NULL) = %d\n", settimeofday(&tv, NULL)); t = time(NULL); printf("Time: %d, CPUs: %d\n", (unsigned int)t, get_nprocs()); return 0; } $ gcc -O3 nproc.c $ ./a.out settimeofday({0, 0}, NULL) = -1 Time: 1401311578, CPUs: 4 $ sudo ./a.out settimeofday({0, 0}, NULL) = 0 Time: 0, CPUs: 0 The problem is with the condition used to check whether a cached value should be returned or not: static int cached_result; static time_t timestamp; time_t now = time (NULL); time_t prev = timestamp; atomic_read_barrier (); if (now == prev) return cached_result; This patch fixes the problem by ensuring that 'cached_result' has been set at least once before returning it.
* Move SPARC public headers out of nptl/Roland McGrath2014-06-121-0/+99
|
* SPARC: Convert fork.c to arch-fork.hRoland McGrath2014-06-121-0/+27
|
* Get rid of nptl/sysdeps/pthread/ subdirectoryRoland McGrath2014-06-122-0/+60
|
* Consolidate NPTL sigprocmask.Roland McGrath2014-06-121-1/+2
|
* Move SH code out of nptl/ subdirectory.Roland McGrath2014-06-1223-0/+6138
|
* tile: Consolidate NPTL/non versions of vforkChris Metcalf2014-06-113-6/+2
|
* Tile: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-111-24/+0
|
* Alpha: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-111-22/+0
|
* PowerPC: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-111-24/+0
|
* AArch64: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-111-23/+0
|
* tile: move sysdeps/unix/sysv/linux/tile nptl files.Chris Metcalf2014-06-1053-269/+5
|
* hppa: Remove lowlevellock.c.Bernard Ogden2014-06-091-126/+0
| | | | | | The hppa port has no need of a custom lowlevellock.c, it should use the generic version which is updated and correct. This similarly fixes bug 15119 for hppa.
* m68k: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-091-24/+0
|
* HPPA: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-091-22/+0
|
* MIPS: Define TLS_DEFINE_INIT_TPRoland McGrath2014-06-091-23/+0
|