aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-05-08Fix comment typoAndreas Schwab2-1/+5
2018-05-07x86-64/memset: Mark the debugger symbol as hiddenH.J. Lu2-1/+8
When MEMSET_SYMBOL (__memset, erms) is provided for debugger, mark it as hidden so that it will be local to the library. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S (MEMSET_SYMBOL (__memset, erms)): Mark the debugger symbol as hidden.
2018-05-07benchtests: Move iterator declaration into loop headerSiddhesh Poyarekar3-6/+11
This is a minor style change to move the definition of I to its usage scope instead of at the top of the function. This is consistent with glibc style guidelines and more importantly it was getting in the way of my testing. * benchtests/bench-memcpy-walk.c (do_test): Move declaration of I into loop header. * benchtests/bench-memmove-walk.c (do_test): Likewise.
2018-05-07Revert:Alexandre Oliva2-0/+14
2018-04-30 Raymond Nicholson <rain1@airmail.cc> * manual/startup.texi (Aborting a Program): Remove inappropriate joke. This complies with the decision of the project leader and primary and ultimate maintainer, who partially delegated maintainership to myself and others under certain constraints. This is also in line with the community-agreed procedures. It is obvious that we didn't have consensus on a decision to install that patch, since both sides are still arguing over it. As for the decision to reverse the deletion, if we even need one to counter a move that did not have consensus, although nobody else offered to install the reversal and restore the status prior to the fait accompli, and some explicitly refused to do so themselves, nobody objected when I offered to do so. Therefore, by the same reasoning that led to the mistaken installation of the patch, and after a much longer wait for objections, I understand there is consensus on my reverting it.
2018-05-05Fix BZ 20419. A PT_NOTE in a binary could be arbitratily large, so usingPaul Pluzhnikov5-4/+85
alloca for it may cause stack overflow. If the note is larger than __MAX_ALLOCA_CUTOFF, use dynamically allocated memory to read it in. 2018-05-05 Paul Pluzhnikov <ppluzhnikov@google.com> [BZ #20419] * elf/dl-load.c (open_verify): Fix stack overflow. * elf/Makefile (tst-big-note): New test. * elf/tst-big-note-lib.S: New. * elf/tst-big-note.c: New.
2018-05-04Ignore absolute symbols in ABI tests.Joseph Myers327-1683/+357
A recent binutils patch <https://sourceware.org/ml/binutils/2018-04/msg00336.html> stops the MIPS linker including the _gp_disp absolute symbol in dynamic symbol tables. With older binutils, it is included for MIPS o32 (despite the use of symbol versioning), and this means that all the ABI test baselines for MIPS o32 include "_gp_disp _gp_disp A". This symbol is not meaningfully part of the ABI for shared libraries, since it always has to be resolved at static link time to the local definition for the linked object. All the other absolute symbols in ABI test baselines are the names of symbol versions. I don't think the mere existence of a symbol version with a given name - as opposed to the contents of that version if nonempty - is part of the ABI either. Thus, this patch allows the ABI tests to pass both before and after the binutils change by changing abilist.awk not to include absolute symbols in its output, and changing the baselines accordingly. Tested for x86_64, and with build-many-glibcs.py. * scripts/abilist.awk: Ignore absolute symbols. * sysdeps/mach/hurd/i386/ld.abilist: Remove absolute symbols. * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: Likewise. * sysdeps/mach/hurd/i386/libanl.abilist: Likewise. * sysdeps/mach/hurd/i386/libc.abilist: Likewise. * sysdeps/mach/hurd/i386/libcrypt.abilist: Likewise. * sysdeps/mach/hurd/i386/libdl.abilist: Likewise. * sysdeps/mach/hurd/i386/libm.abilist: Likewise. * sysdeps/mach/hurd/i386/libnsl.abilist: Likewise. * sysdeps/mach/hurd/i386/libpthread.abilist: Likewise. * sysdeps/mach/hurd/i386/libresolv.abilist: Likewise. * sysdeps/mach/hurd/i386/librt.abilist: Likewise. * sysdeps/mach/hurd/i386/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist: Likewise.
2018-05-04Fix blocking pthread_join. [BZ #23137]Stefan Liebler2-5/+14
On s390 (31bit) if glibc is build with -Os, pthread_join sometimes blocks indefinitely. This is e.g. observable with testcase intl/tst-gettext6. pthread_join is calling lll_wait_tid(tid), which performs the futex-wait syscall in a loop as long as tid != 0 (thread is alive). On s390 (and build with -Os), tid is loaded from memory before comparing against zero and then the tid is loaded a second time in order to pass it to the futex-wait-syscall. If the thread exits in between, then the futex-wait-syscall is called with the value zero and it waits until a futex-wake occurs. As the thread is already exited, there won't be a futex-wake. In lll_wait_tid, the tid is stored to the local variable __tid, which is then used as argument for the futex-wait-syscall. But unfortunately the compiler is allowed to reload the value from memory. With this patch, the tid is loaded with atomic_load_acquire. Then the compiler is not allowed to reload the value for __tid from memory. ChangeLog: [BZ #23137] * sysdeps/nptl/lowlevellock.h (lll_wait_tid): Use atomic_load_acquire to load __tid.
2018-05-02x86-64/swapcontext: Restore the pointer into %rdx after syscallH.J. Lu1-20/+22
To prepare for shadow stack support, restore the pointer into %rdx after syscall and use %rdx, instead of %rsi, to restore context. There is no functional change. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> * sysdeps/unix/sysv/linux/x86_64/swapcontext.S (__swapcontext): Restore the pointer into %rdx, after syscall and use %rdx, instead of %rsi, to restore context.
2018-05-02clH.J. Lu1-0/+6
2018-05-02x86-64/setcontext: Pop the pointer into %rdx after syscallH.J. Lu2-19/+28
To prepare for shadow stack support, pop the pointer into %rdx after syscall and use %rdx, instead of %rsi, to restore context. There is no functional change. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> * sysdeps/unix/sysv/linux/x86_64/setcontext.S (__setcontext): Pop the pointer into %rdx after syscall and use %rdx, instead of %rsi, to restore context.
2018-05-02x86: Use pad in pthread_unwind_buf to preserve shadow stack registerH.J. Lu8-8/+239
The pad array in struct pthread_unwind_buf is used by setjmp to save shadow stack register. We assert that size of struct pthread_unwind_buf is no less than offset of shadow stack pointer + shadow stack pointer size. Since functions, like LIBC_START_MAIN, START_THREAD_DEFN as well as these with thread cancellation, call setjmp, but never return after __libc_unwind_longjmp, __libc_unwind_longjmp, which is defined as __libc_longjmp on x86, doesn't need to restore shadow stack register. __libc_longjmp, which is a private interface for thread cancellation implementation in libpthread, is changed to call __longjmp_cancel, instead of __longjmp. __longjmp_cancel is a new internal function in libc, which is similar to __longjmp, but doesn't restore shadow stack register. The compatibility longjmp and siglongjmp in libpthread.so are changed to call __libc_siglongjmp, instead of __libc_longjmp, so that they will restore shadow stack register. Tested with build-many-glibcs.py. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> * nptl/pthread_create.c (START_THREAD_DEFN): Clear previous handlers after setjmp. * setjmp/longjmp.c (__libc_longjmp): Don't define alias if defined. * sysdeps/unix/sysv/linux/x86/setjmpP.h: Include <libc-pointer-arith.h>. (_JUMP_BUF_SIGSET_BITS_PER_WORD): New. (_JUMP_BUF_SIGSET_NSIG): Changed to 96. (_JUMP_BUF_SIGSET_NWORDS): Changed to use ALIGN_UP and _JUMP_BUF_SIGSET_BITS_PER_WORD. * sysdeps/x86/Makefile (sysdep_routines): Add __longjmp_cancel. * sysdeps/x86/__longjmp_cancel.S: New file. * sysdeps/x86/longjmp.c: Likewise. * sysdeps/x86/nptl/pt-longjmp.c: Likewise.
2018-05-02Fix ChangeLog from cf2478d53ad commitAdhemerval Zanella1-14/+0
2018-05-02Deprecate ustat syscall interfaceAdhemerval Zanella10-134/+93
As for sysctl, ustat has been deprecated in favor of {f}statfs. Also some newer ports which uses generic interface builds a stub version that returns ENOSYS. This patch deprecates ustat interface by removing ustat.h related headers, adding a compatibility symbol, and avoiding new ports to build and provide the symbol. Checked on x86_64-linux-gnu and i686-linux-gnu. Also checked with a check-abi on all affected ABIs. * NEWS: Add ustat.h deprecation entry. * bits/ustat.h: Remove file. * misc/sys/ustat.h: Likewise. * misc/ustat.h: Likewise. * sysdeps/unix/sysv/linux/generic/ustat.c: Likewise. * misc/Makefile (headers): Remove ustat.h and sys/ustat.h. * misc/ustat.c (__ustat): Rename to __old_ustat and export only in compatibility mode. * sysdeps/unix/sysv/linux/ustat.c (__ustat): Likewise. * sysdeps/unix/sysv/linux/mips/ustat.c: Define DEV_TO_KDEV and use generic Linux implementation.
2018-04-30Replace hidden_def with libm_hidden_def in mathTulio Magno Quites Machado Filho4-6/+9
libm_hidden_def expand the parameters and do not require an extra layer of macros. These were the last 3 files in math/ still using hidden_def(). * math/w_exp_compat.c: Replace hidden_def with libm_hidden_def.. * math/w_expl_compat.c: Likewise. * math/w_exp_template.c: Likewise. Remove hidden_def_x. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-04-30manual/startup.texi (Aborting a Program): Remove inappropriate joke.Raymond Nicholson2-8/+4
2018-04-27Consolidate Linux readahead implementationAdhemerval Zanella8-66/+17
This patch consolidate Linux readahead implementation on generic sysdeps/unix/sysv/linux/readahead.c one. The changes are: - Assume __NR_readahead existence with current minimum kernel of 3.2 for all architectures. - Use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG, and SYSCALL_LL64 to pass the 64 bit offset. This allows architectures with different abis to use the same implementation. - Remove arch-specific readahead implementations. Checked on x86_64-linux-gnu and i686-linux-gnu. * sysdeps/unix/sysv/linux/arm/readahead.c: Remove file. * sysdeps/unix/sysv/linux/mips/mips32/readahead.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (readahead): Remove. * sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/readahead.c (__readahead): Assume __NR_readahead existence, and use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG, and SYSCALL_LL64.
2018-04-27Replace M_SUF (M_LN2) with M_MLIT (M_LN2)Tulio Magno Quites Machado Filho2-1/+3
According to math-type-macros.h, M_SUF should be used to paste the suffix used by functions, while M_MLIT is used with macro constants. * math/e_exp2_template.c: Replace M_SUF (M_LN2) with M_MLIT (M_LN2). Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-04-27Replace M_SUF (fabs) with M_FABSTulio Magno Quites Machado Filho4-4/+10
math-type-macros.h provides the macro M_FABS in order to reference the correct fabs function for a specific type. In most of the cases, M_FABS is identical to M_SUF (fabs), but that may change in the future. * math/w_acos_template.c: Replace M_SUF (fabs) with M_FABS. * math/w_asin_template.c: Likewise. * math/w_atanh_template.c: Likewise. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-04-27powerpc64*: fix the order of implied sysdeps directoriesGabriel F. T. Gomes116-60/+258
The creation of the divergent sysdeps directory for powerpc64le commit 2f7f3cd8cd302bb10908c86f3f7b349df0a78e6a Author: Paul E. Murphy <murphyp@linux.vnet.ibm.com> Date: Fri Jul 15 18:04:40 2016 -0500 powerpc64le: Create divergent sysdep directory for powerpc64le. allowed float128 to be enabled for powerpc64le (little-endian) and not for powerpc64 (big-endian). Since the only intended difference between them was the presence or absence of the float128 interface, the sysdeps directory for powerpc64le explicitly reused the files from powerpc64 (through the use of Implies files). Although this works, it also means that files under the powerpc64 directory might be preferred over files under powerpc64le. For instance, on a build for powerpc64le with target set to power9, a file from powerpc64/power5 might get built, even though a file with the same name exists in powerpc64le/power8. That happens because the processor hierarchy was only defined in the sysdeps directory for powerpc64 (and borrowed by powerpc64le). This patch fixes this behavior, by creating new subdirectories under powerpc64 (i.e.: powerpc64/be and powerpc64/le) and creating new Implies files to provide the hierarchy of processors for powerpc64 and powerpc64le separately. These changes have no effect on installed, stripped binaries (which remain unchanged). Tested that installed stripped binaries are unchanged and that there are no regressions on powerpc64 and powerpc64le.
2018-04-27Remove tilegx port.Joseph Myers164-15720/+32
Since tile support has been removed from the Linux kernel for 4.17, this patch removes the (unmaintained) port to tilegx from glibc (the tilepro support having been previously removed). This reflects the general principle that a glibc port needs upstream support for the architecture in all the components it build-depends on (so binutils, GCC and the Linux kernel, for the normal case of a port supporting the Linux kernel but no other OS), in order to be maintainable. Apart from removal of sysdeps/tile and sysdeps/unix/sysv/linux/tile, there are updates to various comments referencing tile for which removal of those references seemed appropriate. The configuration is removed from README and from build-many-glibcs.py. contrib.texi keeps mention of removed contributions, but I updated Chris Metcalf's entry to reflect that he also contributed the non-removed support for the generic Linux kernel syscall interface. __ASSUME_FADVISE64_64_NO_ALIGN support is removed, as it was only used by tile. * sysdeps/tile: Remove. * sysdeps/unix/sysv/linux/tile: Likewise. * README (tilegx-*-linux-gnu): Remove from list of supported configurations. * manual/contrib.texi (Contributors): Mention Chris Metcalf's contribution of support for generic Linux kernel syscall interface. * scripts/build-many-glibcs.py (Context.add_all_configs): Remove tilegx configurations. (Config.install_linux_headers): Do not handle tile. * sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Do not mention Tile in comment. * sysdeps/unix/sysv/linux/nios2/Makefile: Likewise. * sysdeps/unix/sysv/linux/posix_fadvise.c: Likewise. [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove conditional undefine and redefine. * sysdeps/unix/sysv/linux/posix_fadvise64.c: Do not mention Tile in comment. [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove conditional undefine and redefine.
2018-04-26Add tst-sigaction.c to test BZ #23069Aurelien Jarno3-1/+62
This simple test uses sigaction to define a signal handler. It then uses sigaction again to fetch the information about the same signal handler, and check that they are consistent. This is enough to detect mismatches between struct kernel_sigaction and the kernel version of struct sigaction, like in BZ #23069. Changelog: * signal/tst-sigaction.c: New file to test BZ #23069. * signal/Makefile (tests): Fix indentation. Add tst-sigaction.
2018-04-26Increase robustness of internal dlopen() by using RTLD_NOW [BZ #22766]Tulio Magno Quites Machado Filho4-7/+34
Prevent random runtime crashes due to missing symbols caused by mixed libnss_* versions. [BZ #22766] * include/dlfcn.h [__libc_dl_open]: Replace RTLD_LAZY with RTLD_NOW. * sysdeps/gnu/unwind-resume.c (__lib_gcc_s_init): Replace __libc_dlopen_mode() using RTLD_NOW with __libc_dlopen. * sysdeps/nptl/unwind-forcedunwind.c: Likewise. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-04-25Consolidate getdirentries{64} implementationAdhemerval Zanella5-20/+57
This patch consolidates Linux getdirentries{64} implementation on just the default sysdeps/unix/sysv/linux/getdirentries{64} ones. The default implementation handles the Linux requirements: * getdirentries is only built for _DIRENT_MATCHES_DIRENT64 being 0. * getdirentries64 is always built and aliased to getdents for ABIs that define _DIRENT_MATCHES_DIRENT64 to 1. Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu, and powerpc64le-linux-gnu. * sysdeps/unix/sysv/linux/getdirentries.c (getdirentries): Build iff _DIRENT_MATCHES_DIRENT64 is not defined. * sysdeps/unix/sysv/linux/getdirentries64.c (getdirentries64): Open implementation and alias to getdirentries if _DIRENT_MATCHES_DIRENT64 is defined. * sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c: Remove file. * sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c: Remove file.
2018-04-25Use GCC 8 in build-many-glibcs.py by default.Joseph Myers2-1/+6
Now that GCC 8 has branched, this patch makes build-many-glibcs.py default to using GCC 8 branch instead of GCC 7. The effect should be that all builds complete cleanly and the compilation parts of the glibc testsuite complete cleanly except for on i686-gnu (with GCC 7 there were testsuite failures for some other configurations as well). I've replaced my bot building using GCC 6 branch with one using GCC 8 branch. (Of course glibc should continue building with GCC 6 - and for that matter GCC 5 and 4.9, which are no longer maintained, are supported versions as well - but building with GCC 6 will no longer be included in my bot testing.) * scripts/build-many-glibcs.py (Context.checkout): Default GCC version to GCC 8 branch.
2018-04-24Fix Hurd glibc build with GCC 8.Joseph Myers2-2/+8
The build of glibc for Hurd has been failing with GCC mainline because of the checks that aliases have the same type as the symbol aliased; the Hurd dl-sysdep.c has a macro that defines aliases without using the proper type. When GCC 8 branches (soon), I intend to make it the default version in build-many-glibcs.py, so these failures would mean the default build-many-glibcs.py build fails for Hurd again. This patch fixes the Hurd build with GCC 8 by changing the macro that defines the problem aliases to use the correct type for them. An include of <not-errno.h> is needed to avoid this use of typeof resulting in an error for __access_noerrno not being declared. Tested compilation for i686-gnu with build-many-glibcs.py. * sysdeps/mach/hurd/dl-sysdep.c: Include <not-errno.h>. (check_no_hidden): Use type of original function when declaring alias.
2018-04-24Fix tst-strfmon_l test for hr_HR localeMike FABIAN1-2/+2
The test needs to be adapted for the change in the thousands separators: “hr_HR locale: fix thousands_sep and mon_thousands_sep” [BZ #23094]
2018-04-24Add PTRACE_SECCOMP_GET_METADATA from Linux 4.16 to sys/ptrace.h.Joseph Myers11-8/+76
This patch adds the PTRACE_SECCOMP_GET_METADATA constant from Linux 4.16 to all relevant sys/ptrace.h files. A type struct __ptrace_seccomp_metadata, analogous to other such types, is also added. Tested for x86_64, and with build-many-glibcs.py. * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): New enum value and macro. * sysdeps/unix/sysv/linux/bits/ptrace-shared.h (struct __ptrace_seccomp_metadata): New type. * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/arm/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/s390/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/tile/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise. * sysdeps/unix/sysv/linux/x86/sys/ptrace.h (PTRACE_SECCOMP_GET_METADATA): Likewise.
2018-04-23Consolidate alphasort{64} and versionsort{64} implementationAdhemerval Zanella17-55/+69
This patch consolidates both alphasort{64} and versionsort{64} implementation on just the default dirent/alphasort{64}c and dirent/versionsort{64} respectively. It changes the logic to follow the conventions used on other code consolidation: * the non-LFS variant is only built for _DIRENT_MATCHES_DIRENT64 being 0. * the LFS variant is always built and aliased to getdents for ABIs that define _DIRENT_MATCHES_DIRENT64 to 1. Also on Linux the compat symbol for old non-LFS dirent64 definition requires a platform-specific scandir64.c. For powerpc32 and sparcv9 it requires to add specific arch-implementation to override the generic Linux one because neither ABI exports an compat symbol for non-LFS alphasort64 and versionsort64 variant. It is most likely a bug and it is also not one that can be fixed (in that there would be existing binaries expecting both meanings of that symbol at its single existing version, with binaries expecting the new meaning probably much more common than those expecting the original meaning of that symbol at that version). Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu, and powerpc64le-linux-gnu. * dirent/alphasort.c (alphasort): Build iff _DIRENT_MATCHES_DIRENT64 is defined. * dirent/versionsort.c (versionsort): Likewise. * dirent/alphasort64.c (alphasort64): Build regardless and alias to alphasort if _DIRENT_MATCHES_DIRENT64 is defined. * dirent/versionsort64.c (versionsort64): Likewise. * sysdeps/unix/sysv/linux/i386/alphasort64.c: Remove file. * sysdeps/unix/sysv/linux/arm/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/arm/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/m68k/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/m68k/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/alphasort64.c: New file. * sysdeps/unix/sysv/linux/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c: Likewise.
2018-04-23Add NT_PPC_PKEY from Linux 4.16 to elf.h.Joseph Myers2-0/+6
This patch adds the NT_PPC_PKEY macro from Linux 4.16 to elf.h. Tested for x86_64. * elf/elf.h (NT_PPC_PKEY): New macro.
2018-04-23NEWS: Reindent and copyeditZack Weinberg1-29/+29
Make the indentation of the "Deprecated and removed features" section for 2.28 consistent with the indentation of the "Major new features" section above. Also, consistently refer to "stdio functions" instead of "stdio.h functions".
2018-04-23hr_HR locale: fix thousands_sep and mon_thousands_sepDragan Stanojevic - Nevidljivi2-2/+8
[BZ #23094] * localedata/locales/hr_HR: fix thousands_sep and mon_thousands_sep
2018-04-20Define XTABS to TAB3 on alpha to match Linux 4.16.Joseph Myers2-1/+6
This patch makes the alpha bits/termios.h define XTABS to TAB3, so matching a change made in Linux 4.16 as well as matching other architectures where the values are already equal. Tested with build-many-glibcs.py for alpha-linux-gnu. * sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_MISC] (XTABS): Define to TAB3.
2018-04-20Update hppa libm-test-ulpsAdhemerval Zanella2-0/+4
* sysdeps/hppa/fpu/libm-test-ulps: Update.
2018-04-20Consolidate scandir{at}{64} implementationAdhemerval Zanella15-194/+200
This patch consolidates scandir{at}{64} implementation on just the default dirent/scandir{at}{64}{_r}.c ones. It changes the logic to follow the conventions used on other code consolidation: * scandir{at} is only built for _DIRENT_MATCHES_DIRENT64 being 0. * scandir{at}{64} is always built and aliased to getdents for ABIs that define _DIRENT_MATCHES_DIRENT64 to 1. Also on Linux the compat symbol for old non-LFS dirent64 definition requires a platform-specific scandir64.c. Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu, and powerpc64le-linux-gnu. * dirent/scandir-tail-common.c: New file. * dirent/scandir-tail.c: Use scandir-tail-common.c. (__scandir_tail): Build iff _DIRENT_MATCHES_DIRENT64 is not defined. * dirent/scandir.c: Use scandir-tail-common.c. * dirent/scandirat.c: Likewise. * dirent/scandir64-tail.c: Use scandir-tail-common.c. * dirent/scandir64.c (scandir64): Always build and alias to scandir if _DIRENT_MATCHES_DIRENT64 is defined. * dirent/scandirat64.c (scandirat64): Likewise. * include/dirent.h (__scandir_tail): Only define iff _DIRENT_MATCHES_DIRENT64 is not defined. (__scandir64_tail): Define regardless. (__scandirat, scandirat64): Remove libc_hidden_proto. * sysdeps/unix/sysv/linux/arm/scandir64.c: Remove file. * sysdeps/unix/sysv/linux/m68k/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/scandir64.c: New file.
2018-04-20Update aarch64 bits/hwcap.h, dl-procinfo.c for Linux 4.16 HWCAP_ASIMDFHM.Joseph Myers3-2/+12
This patch updates the aarch64 bits/hwcap.h and dl-procinfo.c for the new HWCAP_ASIMDFHM value in Linux 4.16. Tested with build-many-glibcs.py for aarch64-linux-gnu. * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_ASIMDFHM): New macro. * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT): Increase to 24. (_dl_aarch64_cap_flags): Add asimdfhm.
2018-04-20hurd xfails: Add missing bug referencesSamuel Thibault2-0/+4
2018-04-20hurd: XFAIL tests for signal features not implemented yetSamuel Thibault3-8/+12
* conform/data/signal.h-data (SA_SIGINFO, SA_NOCLDWAIT): XFAIL on i386-gnu. * conform/data/sys/wait.h-data (WIFCONTINUED, WEXITED, WSTOPPED, WCONTINUED, WNOWAIT): XFAIL on i386-gnu.
2018-04-20hurd: XFAIL appearance of sched_param and sched_priority from <sys/types.h>Samuel Thibault2-0/+137
Reported at BZ #23088. * sysdeps/mach/hurd/i386/Makefile (test-xfail-POSIX/fcntl.h/conform): Add. (test-xfail-POSIX/signal.h/conform): Add. (test-xfail-POSIX/semaphore.h/conform): Add. (test-xfail-POSIX/regex.h/conform): Add. (test-xfail-POSIX/aio.h/conform): Add. (test-xfail-POSIX/mqueue.h/conform): Add. (test-xfail-POSIX/sys/types.h/conform): Add. (test-xfail-UNIX98/fcntl.h/conform): Add. (test-xfail-UNIX98/netdb.h/conform): Add. (test-xfail-UNIX98/signal.h/conform): Add. (test-xfail-UNIX98/semaphore.h/conform): Add. (test-xfail-UNIX98/regex.h/conform): Add. (test-xfail-UNIX98/aio.h/conform): Add. (test-xfail-UNIX98/ftw.h/conform): Add. (test-xfail-UNIX98/mqueue.h/conform): Add. (test-xfail-UNIX98/netinet/in.h/conform): Add. (test-xfail-UNIX98/sys/wait.h/conform): Add. (test-xfail-UNIX98/sys/sem.h/conform): Add. (test-xfail-UNIX98/sys/uio.h/conform): Add. (test-xfail-UNIX98/sys/socket.h/conform): Add. (test-xfail-UNIX98/sys/types.h/conform): Add. (test-xfail-UNIX98/stdlib.h/conform): Add. (test-xfail-UNIX98/arpa/inet.h/conform): Add. (test-xfail-POSIX2008/fcntl.h/conform): Add. (test-xfail-POSIX2008/netdb.h/conform): Add. (test-xfail-POSIX2008/signal.h/conform): Add. (test-xfail-POSIX2008/semaphore.h/conform): Add. (test-xfail-POSIX2008/regex.h/conform): Add. (test-xfail-POSIX2008/aio.h/conform): Add. (test-xfail-POSIX2008/mqueue.h/conform): Add. (test-xfail-POSIX2008/netinet/in.h/conform): Add. (test-xfail-POSIX2008/sys/wait.h/conform): Add. (test-xfail-POSIX2008/sys/socket.h/conform): Add. (test-xfail-POSIX2008/sys/types.h/conform): Add. (test-xfail-POSIX2008/arpa/inet.h/conform): Add. (test-xfail-XOPEN2K/fcntl.h/conform): Add. (test-xfail-XOPEN2K/netdb.h/conform): Add. (test-xfail-XOPEN2K/signal.h/conform): Add. (test-xfail-XOPEN2K/semaphore.h/conform): Add. (test-xfail-XOPEN2K/regex.h/conform): Add. (test-xfail-XOPEN2K/aio.h/conform): Add. (test-xfail-XOPEN2K/ftw.h/conform): Add. (test-xfail-XOPEN2K/mqueue.h/conform): Add. (test-xfail-XOPEN2K/netinet/in.h/conform): Add. (test-xfail-XOPEN2K/sys/wait.h/conform): Add. (test-xfail-XOPEN2K/sys/sem.h/conform): Add. (test-xfail-XOPEN2K/sys/uio.h/conform): Add. (test-xfail-XOPEN2K/sys/socket.h/conform): Add. (test-xfail-XOPEN2K/sys/types.h/conform): Add. (test-xfail-XOPEN2K/stdlib.h/conform): Add. (test-xfail-XOPEN2K/arpa/inet.h/conform): Add. (test-xfail-XOPEN2K8/fcntl.h/conform): Add. (test-xfail-XOPEN2K8/netdb.h/conform): Add. (test-xfail-XOPEN2K8/signal.h/conform): Add. (test-xfail-XOPEN2K8/semaphore.h/conform): Add. (test-xfail-XOPEN2K8/regex.h/conform): Add. (test-xfail-XOPEN2K8/aio.h/conform): Add. (test-xfail-XOPEN2K8/ftw.h/conform): Add. (test-xfail-XOPEN2K8/mqueue.h/conform): Add. (test-xfail-XOPEN2K8/netinet/in.h/conform): Add. (test-xfail-XOPEN2K8/sys/wait.h/conform): Add. (test-xfail-XOPEN2K8/sys/sem.h/conform): Add. (test-xfail-XOPEN2K8/sys/uio.h/conform): Add. (test-xfail-XOPEN2K8/sys/socket.h/conform): Add. (test-xfail-XOPEN2K8/sys/types.h/conform): Add. (test-xfail-XOPEN2K8/stdlib.h/conform): Add. (test-xfail-XOPEN2K8/arpa/inet.h/conform): Add.
2018-04-20Revert "hurd: Fix mach installed headers test"Samuel Thibault5-8/+4
This reverts commit d4379e0216d01fd1395b1f3b37255e3486760135: the proper headers are actually already getting installed.
2018-04-20Drop fpregset unused symbol expositionSamuel Thibault6-5/+11
* sysdeps/arm/sys/ucontext.h: Remove fpregset struct name, unused and non-compliant. * sysdeps/i386/sys/ucontext.h: Likewise. * sysdeps/m68k/sys/ucontext.h: Likewise. * sysdeps/mips/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Likewise.
2018-04-20hurd: Fix hurd installed headers testSamuel Thibault4-1/+11
* sysdeps/hurd/include/hurd.h [!_ISOMAC]: Do not declare libc hidden prototypes. * sysdeps/hurd/include/hurd/fd.h [!_ISOMAC]: Likewise. * sysdeps/hurd/include/hurd/signal.h [!_ISOMAC]: Likewise.
2018-04-19hurd: Add missing RLIM_SAVED_MAX/CURSamuel Thibault2-0/+5
* bits/resource.h (RLIM_SAVED_MAX, RLIM_SAVED_CUR): New macros.
2018-04-19hurd: Fix termios.h symbolsSamuel Thibault2-3/+13
* bits/termios.h [__USE_XOPEN || __USE_XOPEN2K8] (IXANY): Define. [__USE_XOPEN && !__USE_XOPEN2K] (IUCLC, OLCUC): Define. [__USE_XOPEN] (OFDEL): New macro. [__USE_XOPEN && !__USE_XOPEN2K] (XCASE): New macro.
2018-04-19hurd: remove non-standard siginfo symbolSamuel Thibault2-1/+3
* bits/types/siginfo_t.h: Remove siginfo struct name, unused and non-compliant.
2018-04-19hurd: fix sigevent's sigev_notify_attributes field typeSamuel Thibault2-2/+23
* sysdeps/pthread/bits/types/sigevent_t.h: New file, based on the generic version but include <bits/pthreadtypes.h> to make struct sigevent's sigev_notify_attributes field a pthread_attr_t*.
2018-04-19Update sysdeps/nios2/libm-test-ulpsChung-Lin Tang2-8/+20
2018-04-19hurd: Avoid exposing all <sched.h> symbols from sys/types.hSamuel Thibault6-12/+39
* bits/sched.h: Include <bits/types/struct_sched_param.h> and move struct sched_param definition to it. * sysdeps/unix/sysv/linux/bits/sched.h: Likewise. * bits/types/struct_sched_param.h: New file. * sysdeps/htl/bits/types/struct___pthread_attr.h: Include <bits/types/struct_sched_param.h> instead of <sched.h>. * posix/Makefile (headers): Add bits/types/struct_sched_param.h.
2018-04-19Fix mips64n32 getdents aliasAdhemerval Zanella2-0/+5
Fix commit 298d0e3 for mips64n32, checked on a mips64n32-linux-gnu build. * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64): Only alias to __getdents for _DIRENT_MATCHES_DIRENT64.
2018-04-19hurd: Fix symbols expositionSamuel Thibault5-3/+13
* bits/in.h [!__USE_MISC]: Do not define struct ip_opts. * conform/data/netinet/in.h-data: Allow sin_ and sin6_ prefix. * sysdeps/gnu/bits/msq.h (struct msqid_ds): Use __wait_queue struct instead of wait_queue. * sysdeps/gnu/bits/shm.h (struct shmid_ds): Use __vm_area_struct instead of vm_area_struct.
2018-04-19Consolidate Linux getdents{64} implementationAdhemerval Zanella19-450/+317
This patch consolidates Linux getdents{64} implementation on just the default sysdeps/unix/sysv/linux/getdents{64}{_r}.c ones. Although this symbol is used only internally, the non-LFS version still need to be build due the non-LFS getdirentries which requires its semantic. The non-LFS default implementation now uses the wordsize-32 as base which uses getdents64 syscall plus adjustment for overflow (it allows to use the same code for architectures that does not support non-LFS getdents syscall). It has two main differences to wordsize-32 one: - DIRENT_SET_DP_INO is added to handle alpha requirement to zero the padding. - alloca is removed by allocating a bounded temporary buffer (it increases stack usage by roughly 276 bytes). The default implementation handle the Linux requirements: * getdents is only built for _DIRENT_MATCHES_DIRENT64 being 0. * getdents64 is always built and aliased to getdents for ABIs that define _DIRENT_MATCHES_DIRENT64 to 1. * A compat symbol is added for getdents64 for ABI that used to export the old non-LFS version. Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu, and powerpc64le-linux-gnu. * sysdeps/unix/sysv/linux/alpha/getdents.c: Add comments with alpha requirements. (_DIRENT_MATCHES_DIRENT64): Undef * sysdeps/unix/sysv/linux/alpha/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/arm/getdents64.c: Remove file. * sysdeps/unix/sysv/linux/generic/getdents.c: Likewise. * sysdeps/unix/sysv/linux/generic/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c: Likewise. * sysdeps/unix/sysv/linux/getdents.c: Simplify implementation by use getdents64 syscalls as base. * sysdeps/unix/sysv/linux/getdents64.c: Likewise and add compatibility symbol if required. * sysdeps/unix/sysv/linux/hppa/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/getdents.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c (__get_clockfreq_via_proc_openprom): Use __getdents64. * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c: New file.