Release/2.25

1. Current status

The release branch of glibc-2.25 is maintained by Siddhesh Poyarekar and was released on 2017-02-05. There are no immediate plans for the next release.

The ref structure of this branch is:

These people are interested in contents and further revisions tagged on the branch:

The general policies for release branches apply to this branch. Do you think a certain bugfix should be included in this branch?

  1. Is the fix committed in master? It has to be, unless it's not applicable to master (e.g. code has been rewritten meantime).
  2. Do you have commit permissions? If so, go ahead if you think it's reasonably safe. break;
  3. Can you handle Git yourself? Then you can clone the glibc repository, cherry-pick the appropriate fixes, push your branch out and send a pull request at libc-alpha. break;
  4. Add the glibc_2.25 keyword to the appropriate bug report.
  5. If there is no appropriate bug report, send a request for the fix to be included to libc-alpha.

A revision release is tagged either when some critical bug-fix appears, or after some period of real-world testing, usually mainly in some SUSE distribution branch (but other distributions are welcome to run latest release/2.25/master as well, more so if they tell me about it!).

2. Planning

What things do we want to accomplish this release?

2.1. Release blockers?

Patchset

Reviewers

global-dynamic TLS broken on aarch64 and others

Carlos O'Donell

race condition in __lll_unlock_elision on powerpc

explicit_bzero test case (?) issue on s390x

Fix x86_64 memchr for large input sizes

glibc tunables

Florian Weimer

Fix for bug 20019 causes linker errors for shared libraries using longjmp

Carlos O'Donell

New condvar and rwlock

Carlos O'Donell

tunables: insecure environment variables passed to subprocesses with AT_SECURE

Florian Weimer

Use after free in pthread_create

Carlos O'Donell

2.2. Desirable this release?

3. Known Issues

3.1. Build and test issues

Describe build and test issues for each architecture, or confirm a clean build with no testsuite failures. The list below is not a complete list of ABI variants; testing should try to cover the different ABI variants as far as possible.

Build system: UNAME -a, GCC?, Binutils?, Kernel ?

TRIMMED LIST OF FAILURES.

3.1.1. Architecture-independent

3.1.2. AArch64

Build system: GCC 6.3.1 20170116, binutils 2.26.2.20160726, Linux 4.2.0-30-generic (Szabolcs Nagy)

FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
UNSUPPORTED: math/test-nearbyint-except-2
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
Summary of test results:
      4 FAIL
   2589 PASS
      9 UNSUPPORTED
     43 XFAIL
      2 XPASS

Build system: RHEL 7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), binutils 2.27-1.base.el7, linux 4.5.0-15.el7.aarch64 (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
FAIL: math/basic-test
FAIL: math/test-double
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-float
FAIL: math/test-ldouble
UNSUPPORTED: math/test-nearbyint-except-2
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
UNSUPPORTED: nptl/tst-thread_local1
FAIL: rt/tst-mqueue6
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
     14 FAIL
   2547 PASS
     12 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.3. Alpha

Build system: qemu 2.8, GCC 6.2, binutils 2.25, Linux 4.9 (Richard Henderson)

FAIL: conform/POSIX2008/termios.h/conform
FAIL: conform/UNIX98/termios.h/conform
FAIL: conform/XOPEN2K/netdb.h/conform
FAIL: conform/XOPEN2K/termios.h/conform
FAIL: conform/XOPEN2K8/netdb.h/conform
FAIL: conform/XOPEN2K8/termios.h/conform
FAIL: conform/XPG3/termios.h/conform
FAIL: conform/XPG4/termios.h/conform
FAIL: crypt/badsalttest
FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: elf/tst-prelink-cmp
FAIL: io/tst-fts-lfs
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-fenv-return
FAIL: math/test-fexcept
FAIL: math/test-float
FAIL: math/test-float-finite
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: nptl/tst-create-detached
FAIL: nptl/tst-eintr1
FAIL: nptl/tst-robust-fork
FAIL: nptl/tst-rwlock19
FAIL: stdio-common/check-installed-headers-cxx
FAIL: stdlib/tst-getrandom
FAIL: stdlib/tst-strtod-round
FAIL: string/tst-cmp
FAIL: wcsmbs/tst-wcstod-round

All of the math failures are due to lack of Inexact being raised; this is a well-known problem on Alpha with no easy solution.

3.1.4. ARM

Build system: (hard-float ABI) GCC 6.3.1 20170120, binutils 2.28.51.20170120, Linux 3.5.0 (Joseph Myers)

XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: io/ftwtest
UNSUPPORTED: io/tst-open-tmpfile
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
UNSUPPORTED: math/test-nearbyint-except-2
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
FAIL: stdio-common/bug22
UNSUPPORTED: stdlib/tst-getrandom
FAIL: sunrpc/bug20790
FAIL: timezone/tst-tzset
Summary of test results:
      5 FAIL
   2073 PASS
     11 UNSUPPORTED
      9 XFAIL
      2 XPASS

Build system: Fedora Rawhide, gcc-7.0.1-0.3.fc26, binutils-2.27-15.fc26, linux 4.9.2-200.fc25.armv7hl (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
UNSUPPORTED: math/test-nearbyint-except-2
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
Summary of test results:
      5 FAIL
   2586 PASS
      9 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.5. HPPA

3.1.6. IA64

Note: Building with gcc-4.8+ and --hash-style=gnu will create an ldso that segfaults immediately. See https://gcc.gnu.org/PR60465 for more details. You can workaround this in three ways:

Build system: ia64 Dual-Core Intel(R) Itanium(R) Processor 9040, gcc (Gentoo 4.9.4 p1.0, pie-0.6.4), GNU assembler (Gentoo 2.25.1 p1.1), Linux headers 4.4, Linux 3.14.14-gentoo. (Mike Frysinger)

FAIL: debug/tst-backtrace4
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: io/tst-fallocate
UNSUPPORTED: io/tst-fallocate64
FAIL: io/tst-open-tmpfile
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-fenv-return
FAIL: math/test-fesetexcept
FAIL: math/test-fexcept
FAIL: math/test-float
FAIL: math/test-float-finite
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: math/test-nearbyint-except
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-cancel21
FAIL: nptl/tst-cancelx21
FAIL: nptl/tst-eintr1
FAIL: nptl/tst-exec1
FAIL: nptl/tst-exec5
FAIL: posix/tst-spawn
FAIL: posix/tst-spawn-static
FAIL: posix/tst-spawn2
FAIL: posix/tst-spawn3
FAIL: stdio-common/check-installed-headers-cxx
FAIL: stdio-common/tst-long-dbl-fphex
UNSUPPORTED: stdlib/tst-getrandom
FAIL: stdlib/tst-makecontext3
FAIL: string/stratcliff
FAIL: string/test-rawmemchr
FAIL: sysvipc/test-sysvmsg
FAIL: sysvipc/test-sysvsem
FAIL: sysvipc/test-sysvshm

3.1.7. M68K

Build system: ARAnyM 1.0.2, openSUSE Tumbleweed, gcc6-6.2.1+r243481, binutils-2.27, Linux 4.9.0 (Andreas Schwab)

FAIL: math/basic-test
FAIL: math/test-canonical-ldbl-96
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-fenv
FAIL: math/test-float
FAIL: math/test-float-finite
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: math/test-snan

3.1.8. MicroBlaze

Build system: gcc (Gentoo 4.9.3 p1.2, pie-0.6.2), GNU assembler (Gentoo 2.25.1 p1.0), Linux headers 4.9 (Mike Frysinger)

Build-test only for microblaze-linux-gnu is OK.

3.1.9. MIPS

Build system: GCC 6.3.1 20170120, binutils 2.28.51.20170120, Linux 3.16 (LE hard-float), 3.14 (BE soft-float) (Joseph Myers)

Seen for all ABIs tested:

FAIL: io/tst-open-tmpfile
FAIL: nptl/test-cond-printers
FAIL: nptl/test-condattr-printers
FAIL: nptl/test-mutex-printers
FAIL: nptl/test-mutexattr-printers
FAIL: nptl/test-rwlock-printers
FAIL: nptl/test-rwlockattr-printers
FAIL: stdio-common/bug22
FAIL: stdio-common/test-vfprintf
FAIL: sunrpc/bug20790
FAIL: timezone/tst-tzset

Seen for o32, both BE soft-float and LE hard-float:

FAIL: nptl/tst-rwlock15

3.1.10. Nios II

Build system: GCC 6.2.0, binutils 2.26.51, Linux headers 4.7 (Chung-Lin Tang)

FAIL: math/test-nearbyint-except
FAIL: nptl/test-cond-printers
FAIL: nptl/test-condattr-printers
FAIL: nptl/test-mutex-printers
FAIL: nptl/test-mutexattr-printers
FAIL: nptl/test-rwlock-printers
FAIL: nptl/test-rwlockattr-printers
FAIL: nptl/tst-cond12
FAIL: nss/tst-cancel-getpwuid_r
FAIL: string/tst-cmp
FAIL: sunrpc/bug20790
FAIL: support/tst-support_record_failure-2

3.1.11. PowerPC (32-bit soft-float)

Build system: (soft-float) GCC 6.3.1 20170120, binutils 2.28.51.20170120, Linux 3.10.38 (Joseph Myers)

XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
FAIL: io/ftwtest
UNSUPPORTED: io/tst-open-tmpfile
FAIL: math/test-double
FAIL: math/test-float
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: math/test-nearbyint-except-2
FAIL: nptl/test-cond-printers
FAIL: nptl/test-condattr-printers
FAIL: nptl/test-mutex-printers
FAIL: nptl/test-mutexattr-printers
FAIL: nptl/test-rwlock-printers
FAIL: nptl/test-rwlockattr-printers
FAIL: nptl/tst-rwlock19
FAIL: nptl/tst-stack4
FAIL: posix/tst-posix_fadvise64
FAIL: stdio-common/bug22
FAIL: stdio-common/test-vfprintf
UNSUPPORTED: stdlib/tst-getrandom
FAIL: sunrpc/bug20790
FAIL: timezone/tst-tzset
Summary of test results:
     21 FAIL
   2075 PASS
      2 UNSUPPORTED
      9 XFAIL
      2 XPASS

3.1.12. PowerPC (32-bit hard-float)

Build system: Ubuntu 16.04. gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4). GNU assembler version 2.26.1 (powerpc-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.26.1 (Tulio Magno)

XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
FAIL: stdio-common/check-installed-headers-cxx
Summary of test results:
      6 FAIL
   2597 PASS
      8 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.13. PowerPC (64-bit hard-float)

Build system: Fedora 22. gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC). GNU assembler version 2.25 (ppc64-redhat-linux) using BFD version version 2.25-9.fc22. (Tulio Magno)

XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
Summary of test results:
      5 FAIL
   2598 PASS
      8 UNSUPPORTED
     43 XFAIL
      2 XPASS

Build System: RHEL7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), GNU ld version 2.27-1.base.el7, linux 3.10.0-549.el7.ppc64 (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: io/tst-open-tmpfile
FAIL: malloc/tst-malloc-usable
FAIL: malloc/tst-malloc-usable-static
FAIL: malloc/tst-malloc-usable-static-tunables
FAIL: malloc/tst-malloc-usable-tunables
FAIL: math/test-double
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-float
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
UNSUPPORTED: nptl/tst-thread_local1
UNSUPPORTED: stdlib/tst-getrandom
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
     16 FAIL
   2584 PASS
     13 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.14. PowerPC64LE (64-bit hard-float)

Build system: Ubuntu 16.04. gcc version 5.4.0 20160609 (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.4). GNU assembler version 2.26.1 (powerpc64le-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.26.1 (Tulio Magno)

XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
FAIL: stdio-common/check-installed-headers-cxx
Summary of test results:
      6 FAIL
   2597 PASS
      8 UNSUPPORTED
     43 XFAIL
      2 XPASS

Build system: RHEL7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), GNU ld version 2.27-1.base.el7, linux 3.10.0-549.el7.ppc64le (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
FAIL: elf/tst-tls-manydynamic
UNSUPPORTED: io/tst-open-tmpfile
FAIL: math/test-double
UNSUPPORTED: math/test-fesetexcept-traps
UNSUPPORTED: math/test-fexcept-traps
FAIL: math/test-float
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-stack4
UNSUPPORTED: nptl/tst-thread_local1
UNSUPPORTED: stdlib/tst-getrandom
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
     12 FAIL
   2588 PASS
     13 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.15. S/390 (32-bit)

Build system: gcc version 5.3.0, GNU Binutils version 2.25, Linux 4.2 (Stefan Liebler)

FAIL: math/test-double
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ildouble
FAIL: nptl/tst-setuid2
FAIL: string/tst-strcoll-overflow

See test fail descriptions for S/390 (64bit).

3.1.16. S/390 (64-bit)

Build system: gcc version 5.3.0, GNU Binutils version 2.25, Linux 4.2 (Stefan Liebler)

FAIL: nptl/tst-cancelx4
FAIL: nptl/tst-cancelx5
FAIL: nptl/tst-cancelx16
FAIL: math/test-double
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ildouble
FAIL: nptl/tst-setuid2
FAIL: string/tst-strcoll-overflow

GCCs >= 4.9 and <= 5.3 saves r15 in a floating-point register in do_sigwait() and emits false cfi information. If a thread is cancelled while sigwait blocks, unwinding has already stopped before the function with the cleanup-handler. See gcc commits "S/390: Fix cfi for GPR 2 FPR saves" in gcc 4.9 branch, gcc 5 branch and gcc 6 branch. This occures if built with -O2. With -O3, r15 is not saved in fpr here and the test passes.

Build System: RHEL7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), GNU ld version 2.27-1.base.el7, linux 3.10.0-549.el7.s390x (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
UNSUPPORTED: io/tst-open-tmpfile
FAIL: malloc/tst-malloc-usable
FAIL: malloc/tst-malloc-usable-static
FAIL: malloc/tst-malloc-usable-static-tunables
FAIL: malloc/tst-malloc-usable-tunables
FAIL: math/test-double
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-ildouble
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-create-detached
UNSUPPORTED: nptl/tst-thread_local1
UNSUPPORTED: stdlib/tst-getrandom
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
     14 FAIL
   2576 PASS
     11 UNSUPPORTED
     45 XFAIL

}}}

3.1.17. SH

Build system: gcc-6_6.2.0-5, binutils 2.27.51.20161108, Linux tirpitz 3.16.7-ckt7 #8 PREEMPT (John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>)

FAIL: elf/check-localplt
FAIL: elf/tst-tls1
FAIL: elf/tst-tls1-static
FAIL: elf/tst-tls2
FAIL: elf/tst-tls2-static
FAIL: math/basic-test
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-float
FAIL: math/test-float-finite
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-nearbyint-except
XPASS: nptl/tst-cancel24-static
FAIL: nptl/tst-stack4
XPASS: rt/tst-cpuclock2
XPASS: rt/tst-cputimer1
XPASS: rt/tst-timer
FAIL: setjmp/tst-setjmp-fp
FAIL: stdio-common/bug22
FAIL: stdlib/tst-makecontext
FAIL: stdlib/tst-tininess
FAIL: string/inl-tester
FAIL: string/tester

FAIL: elf/check-localplt
original exit status 1
Extra PLT reference: libc.so: _Unwind_Find_FDE
Extra PLT reference: libc.so: _exit
Extra PLT reference: libc.so: __errno_location

FAIL: elf/tst-tls1
original exit status 1
set bar to 1 (LE)
get sum of foo and bar (IE)Didn't expect signal from child: got `Segmentation fault'
----------
----------
FAIL: elf/tst-tls1-static
original exit status 1
set bar to 1 (LE)
get sum of foo and bar (IE)Didn't expect signal from child: got `Segmentation fault'
----------
----------
FAIL: elf/tst-tls2
original exit status 1
set bar to 1 (LE)
get sum of foo and bar (IE)Didn't expect signal from child: got `Segmentation fault'
----------
----------
FAIL: elf/tst-tls2-static
original exit status 1
set bar to 1 (LE)
get sum of foo and bar (IE)Didn't expect signal from child: got `Segmentation fault'

FAIL: nptl/tst-stack4
original exit status 127

FAIL: setjmp/tst-setjmp-fp
original exit status 1
FAIL: longjmp changed rounding mode
FAIL: longjmp changed exceptions

original exit status 1
ret = -1
ret = -1
ret = -1
ret = -1

original exit status 1
Didn't expect signal from child: got `Aborted'

original exit status 1
tininess.h says after rounding, but detected before rounding

original exit status 1
strcmp flunked test 69
strcmp flunked test 85
strcmp flunked test 101
strcmp flunked test 117
strcmp flunked test 133
strcmp flunked test 149
strcmp flunked test 165
[many more for strcmp]

original exit status 1
strcmp flunked test 69
strcmp flunked test 85
strcmp flunked test 101
strcmp flunked test 117
strcmp flunked test 133
[many more for strcmp]

3.1.18. SPARC (32-bit)

Build system: UltraSparc T5 (Niagara5), gcc 6.3.0, binutils 2.27.90.20170118, and Linux 4.9.2-2. (Adhemerval Zanella). Using --host=sparcv9-linux-gnu

FAIL: intl/tst-gettext
FAIL: libio/tst-widetext
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-float
FAIL: math/test-idouble
FAIL: math/test-ifloat
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: stdlib/tst-makecontext

est `gettext' with LANGUAGE set
test `gettext' with LANGUAGE set
test `dgettext' with LANGUAGE set
test `gettext' with LC_ALL set
test `gettext' with LC_ALL deciding
test `dgettext' with LC_ALL deciding
test `gettext' with LC_MESSAGES set
test `gettext' with LC_MESSAGES deciding
test `dgettext' with LC_MESSAGES deciding
test `dcgettext' with category == LC_MESSAGES
test `dcgettext' with LANGUAGE == LC_TIME
test `dcgettext' with LANGUAGE == LC_NUMERIC
tst-gettext.c:214: setlocale (LC_ALL, ""): No such file or directory
test `gettext' with LANG set
test `gettext' with LANG set
test `dgettext' with LANG set

locale used: de_DE.UTF-8

Timed out: killed the child process

tst-makecontext: tst-makecontext.c:73: cf: Assertion `arg.cnt != -1 && arg.cnt < 100' failed.
Didn't expect signal from child: got `Aborted'

3.1.19. SPARC (64-bit)

Build system: UltraSparc T5 (Niagara5), gcc 6.3.0, binutils 2.27.90.20170118, and Linux 4.9.2-2. (Adhemerval Zanella)

FAIL: conform/ISO/setjmp.h/conform
FAIL: conform/ISO11/setjmp.h/conform
FAIL: conform/ISO99/setjmp.h/conform
FAIL: conform/POSIX/pthread.h/conform
FAIL: conform/POSIX/setjmp.h/conform
FAIL: conform/POSIX2008/pthread.h/conform
FAIL: conform/POSIX2008/setjmp.h/conform
FAIL: conform/UNIX98/pthread.h/conform
FAIL: conform/UNIX98/setjmp.h/conform
FAIL: conform/XOPEN2K/pthread.h/conform
FAIL: conform/XOPEN2K/setjmp.h/conform
FAIL: conform/XOPEN2K8/pthread.h/conform
FAIL: conform/XOPEN2K8/setjmp.h/conform
FAIL: conform/XPG3/setjmp.h/conform
FAIL: conform/XPG4/setjmp.h/conform
FAIL: intl/tst-gettext
FAIL: math/test-double
FAIL: math/test-float
FAIL: math/test-idouble
FAIL: math/test-ifloat
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers

3.1.20. TILE-Gx (64-bit and 32-bit)

Build system: TILE-Gx72 running CentOS 6.3, with gcc 4.8.2, binutils 2.21, and Linux 3.10.55. (Chris Metcalf)

FAIL: nptl/tst-cancel24
FAIL: nptl/tst-cancel24-static
FAIL: nptl/tst-cancelx16
FAIL: nptl/tst-cancelx17
FAIL: nptl/tst-cancelx18
FAIL: nptl/tst-cancelx20
FAIL: nptl/tst-cancelx21
FAIL: nptl/tst-cancelx4
FAIL: nptl/tst-cancelx5
FAIL: nptl/tst-cleanupx0
FAIL: nptl/tst-cleanupx1
FAIL: nptl/tst-cleanupx3
FAIL: nptl/tst-cleanupx4
FAIL: nptl/tst-oncex3
FAIL: nptl/tst-oncex4
FAIL: rt/tst-mqueue8x

The failures above are due to bug 14266

FAIL: nptl/tst-cancel17

This is a segfault, cause unknown.

FAIL: nptl/tst-cancel19

The failure above occurs only on tilegx32: hang, cause unknown.

FAIL: stdlib/tst-setcontext2

This is due to a stack frame variable allocation bug fixed in gcc 5 and newer.

3.1.21. TILEPro

Cross "make" on x86_64 successful with binutils-2.23.1, linux-3.9.2 headers, and gcc 4.7.3. "make check" was not run. (Chris Metcalf)

3.1.22. x86 (32-bit, Linux)

Build system: RHEL7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), GNU ld version 2.27-1.base.el7, 3.10.0-549.el7.x86_64 (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: io/tst-open-tmpfile
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
UNSUPPORTED: nptl/tst-thread_local1
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
      8 FAIL
   2600 PASS
     10 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.23. x86_64 (64-bit, Linux)

Build system: RHEL7, gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), binutils version 2.27-1.base.el7, linux 3.10.0-549.el7.x86_64 (Carlos O'Donell)

FAIL: conform/UNIX98/unistd.h/linknamespace
FAIL: conform/XOPEN2K/unistd.h/linknamespace
FAIL: conform/XOPEN2K8/unistd.h/linknamespace
FAIL: conform/XPG3/unistd.h/linknamespace
FAIL: conform/XPG4/unistd.h/linknamespace
UNSUPPORTED: elf/tst-audit10
UNSUPPORTED: elf/tst-audit4
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: io/tst-open-tmpfile
UNSUPPORTED: math/test-double-libmvec-alias-avx
UNSUPPORTED: math/test-double-libmvec-alias-avx-main
UNSUPPORTED: math/test-double-libmvec-alias-avx2
UNSUPPORTED: math/test-double-libmvec-alias-avx2-main
UNSUPPORTED: math/test-double-libmvec-sincos-avx
UNSUPPORTED: math/test-double-libmvec-sincos-avx2
UNSUPPORTED: math/test-float-libmvec-alias-avx
UNSUPPORTED: math/test-float-libmvec-alias-avx-main
UNSUPPORTED: math/test-float-libmvec-alias-avx2
UNSUPPORTED: math/test-float-libmvec-alias-avx2-main
UNSUPPORTED: math/test-float-libmvec-sincosf-avx
UNSUPPORTED: math/test-float-libmvec-sincosf-avx2
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-robust-fork
UNSUPPORTED: nptl/tst-thread_local1
UNSUPPORTED: stdlib/tst-quick_exit
UNSUPPORTED: stdlib/tst-thread-quick_exit
Summary of test results:
      6 FAIL
   2626 PASS
     24 UNSUPPORTED
     43 XFAIL
      2 XPASS

3.1.24. x86_64 (`LXCORE.SYS` emulation)

The test suite has many failures. Problematic are:

The results reported below are for Windows version 10.0.15063. In earlier builds, test sunrpc/tst-xdrmem2 caused the Windows kernel to crash.

UNSUPPORTED: elf/tst-audit10
FAIL: elf/tst-env-setuid
FAIL: elf/tst-env-setuid-tunables
FAIL: elf/tst-execstack
FAIL: elf/tst-execstack-needed
FAIL: elf/tst-execstack-prog
FAIL: gmon/tst-sprofil
FAIL: io/tst-futimesat
UNSUPPORTED: io/tst-open-tmpfile
FAIL: io/tst-renameat
FAIL: libio/tst-mmap2-eofsync
FAIL: malloc/tst-malloc-thread-fail
FAIL: malloc/tst-mallocfork2
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-fenv
FAIL: math/test-fenv-x87
FAIL: math/test-fpucw
FAIL: math/test-fpucw-ieee
FAIL: math/test-fpucw-ieee-static
FAIL: math/test-fpucw-static
FAIL: math/test-idouble
FAIL: math/test-ildouble
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: math/test-misc
FAIL: misc/tst-clone2
FAIL: misc/tst-personality
FAIL: misc/tst-preadvwritev
FAIL: misc/tst-preadvwritev64
FAIL: misc/tst-sync_file_range
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
FAIL: nptl/tst-align-clone
FAIL: nptl/tst-basic7
FAIL: nptl/tst-cancel16
FAIL: nptl/tst-cancel18
FAIL: nptl/tst-cancel4
FAIL: nptl/tst-cancel4_1
FAIL: nptl/tst-cancel4_2
FAIL: nptl/tst-cancel5
FAIL: nptl/tst-cancelx16
FAIL: nptl/tst-cancelx18
FAIL: nptl/tst-cancelx4
FAIL: nptl/tst-cancelx5
FAIL: nptl/tst-cond-except
FAIL: nptl/tst-cond24
FAIL: nptl/tst-cond25
FAIL: nptl/tst-exec1
FAIL: nptl/tst-exec3
FAIL: nptl/tst-exec4
FAIL: nptl/tst-exec5
FAIL: nptl/tst-execstack
FAIL: nptl/tst-flock2
FAIL: nptl/tst-getpid1
FAIL: nptl/tst-robust-fork
FAIL: nptl/tst-robust1
FAIL: nptl/tst-robust2
FAIL: nptl/tst-robust3
FAIL: nptl/tst-robust4
FAIL: nptl/tst-robust5
FAIL: nptl/tst-robust6
FAIL: nptl/tst-robust7
FAIL: nptl/tst-robust8
FAIL: nptl/tst-robust9
FAIL: nptl/tst-signal3
FAIL: posix/tst-nice
FAIL: posix/tst-posix_fadvise
FAIL: posix/tst-posix_fadvise64
FAIL: posix/tst-spawn
FAIL: posix/tst-spawn-static
FAIL: posix/tst-spawn2
FAIL: posix/tst-spawn3
FAIL: resolv/tst-resolv-search
FAIL: rt/tst-aio4
FAIL: rt/tst-clock2
FAIL: rt/tst-clock_nanosleep
FAIL: rt/tst-cpuclock1
FAIL: rt/tst-cpuclock2
FAIL: rt/tst-cputimer3
FAIL: rt/tst-timer4
FAIL: rt/tst-timer5
FAIL: stdio-common/check-installed-headers-cxx
FAIL: stdio-common/tst-vfprintf-width-prec
FAIL: stdio-common/tst-vfprintf-width-prec-mem
UNSUPPORTED: stdlib/tst-getrandom
FAIL: stdlib/tst-secure-getenv
FAIL: stdlib/tst-strtod-round
UNSUPPORTED: sysvipc/test-sysvmsg
FAIL: sysvipc/test-sysvsem
FAIL: sysvipc/test-sysvshm
FAIL: wcsmbs/tst-wcstod-round

3.1.25. x86_64 (x32, Linux)

Build system: gcc version 6.3.1, GNU Binutils version 2.28.51, Linux 4.9.6 (H.J. Lu)

FAIL: elf/tst-leaks1-mem
FAIL: nptl/tst-setuid2

* elf/tst-leaks1-mem failure is due to bug 14681.

3.1.26. x86 (32-bit, Hurd)

3.2. Packaging Changes

3.2.1. sys/types.h and sys/sysmacros.h

The inclusion of sys/sysmacros.h by sys/types.h is deprecated. Using the macros major, minor, or makedev without having directly included sys/sysmacros.h will trigger compiler warnings.

These macros are not part of POSIX nor XSI, and their names frequently collide with user code; see for instance glibc bug 19239 and Red Hat bug 130601. stdlib.h includes sys/types.h under _GNU_SOURCE, and C++ code presently cannot avoid being compiled under _GNU_SOURCE, exacerbating the problem.

Most programs do not need these macros. Programs that wish to use their names for their own purposes should #undef all three after including all system headers:

   1 #include <sys/types.h>
   2 #include <stdio.h>
   3 /* ... more headers ... */
   4 
   5 /* Some systems provide macros 'major', 'minor', 'makedev' in <sys/types.h>, which we don't want.  */
   6 #undef major
   7 #undef minor
   8 #undef makedev
   9 

Programs that do need these macros should arrange to get them either from sys/types.h or sys/sysmacros.h, because on BSD-derived systems, sys/sysmacros.h does not exist:

   1 #include <sys/types.h>
   2 #ifdef __GLIBC__
   3 #include <sys/sysmacros.h>
   4 #endif
   5 

In order to decide when sys/types.h can stop providing these macros altogether, we would appreciate reports of software affected by this deprecation.

Applications wishing to be compatible with older pre-2.25 glibc's may safely include sys/sysmacros.h starting with glibc 2.0 from 1997, when the header first appeared.

3.2.2. res_gethostbyaddr etc. compat symbols

glibc 2.25 turns res_gethostbyaddr, res_gethostbyname and other functions returning struct hostent results into compatibility symbols. These functions have not been included in the installed <resolv.h> header for a very long time, so applications should not access them. There implementations are also not updated for new DNS developments. There seem to be bogus autoconf checks for these functions (in ekiga, for example). If applications use these functions to avoid endless loops in host name lookups, they need to use __nss_configure_lookup instead.

3.2.3. Calls to getpid are no longer cached

The PID cache used by glibc has been removed. In certain scenarios the cache was not 100% reliable and because of that it was deemed safer to remove the cache than to potentially return a wrong answer.

Applications performing getpid() calls in a loop will see the worst case performance degradation as the library call will perform a system call at each invocation. Such application uses were known to exist at least in OpenSSL (fork()-based PRNG invalidation), but supporting the performance of that specific invalidation mechanism was not judged to have sufficient value against immediate and long-term benefits of removing the cache.

Functional reasons exist for the PID cache removal including problems with PID namespaces, interoperability with raw system calls (BZ#17214, Chrome: Issue 800183004), and improvements to spawn (BZ#19957). Performance is actually increased in pthread_create() with the removal of the cache since the implementation no longer needs to perform an invalidation step.

Applications performing getpid() in a loop that need to do some level of fork()-based invalidation can instead use pthread_atfork() to register handlers to handle the invalidation. There is work-in-progress to make pthread_atfork() available to applications that do not link against libpthread.so (Provide pthread_atfork() without libpthread.so).

Other kinds of invalidation are not supported and the glibc community will actively look at a kernel assisted mechanism for state management across fork(), vfork(), clone() and other interfaces which can benefit from such semantics. It is the same type of solution required for crypto PRNG reset across such API calls.

None: Release/2.25 (last edited 2017-07-12 16:55:22 by CarlosODonell)