Release/2.20
Contents
1. Current status
The release branch of glibc-2.20 is maintained by Allan McRae ( allan@archlinux.org ) and is planned for release July 31st 2014. The freeze in preparation for this release will occur on July 1st 2014.
The ref structure of this branch is:
- release/2.20/master: main branch
- glibc-2.20.N: revision releases tagged out of release/2.20/master
These people are interested in contents and further revisions tagged on the branch:
Carlos O'Donell <carlos@redhat.com> - The 2.20 release is used in Fedora 21.
The general policies for release branches apply to this branch. Do you think a certain bugfix should be included in this branch?
- Is the fix committed in master? It has to be, unless it's not applicable to master (e.g. code has been rewritten meantime).
- Do you have commit permissions? If so, go ahead if you think it's reasonably safe. break;
- 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;
- Add the glibc_2.20 keyword to the appropriate bug report.
- 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.20/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?
s390 ABI issue (jmp_buf/ucontext_t)
Thread Properties API - not ready for this release.
fcntl-linux.h: add new definitions and manual updates for open file description locks - http://patchwork.sourceware.org/patch/1774/ - Done!
PowerPC - fix termios definitions - https://sourceware.org/ml/libc-alpha/2014-07/msg00487.html)
Require to fix various packages build - https://bugzilla.redhat.com/show_bug.cgi?id=1122714
2.2. Desirable this release?
- Finish -Wundef cleanup: no -Wundef warnings in build on any supported configuration. Consolidated list of outstanding warnings on i386 and x86_64 follows. Other architectures may have other outstanding warnings that are not covered here:
167 IS_IN_libc 171 IS_IN_libc 1 ABI_libm_GLIBC_2_19 3 HAVE_IFUNC 5 MMAP2_PAGE_SHIFT 2 _POSIX_BASE 2 _POSIX_C_LANG_SUPPORT 2 _POSIX_C_LANG_SUPPORT_R 2 _POSIX_DEVICE_IO 2 _POSIX_DEVICE_SPCIFIC 2 _POSIX_DEVICE_SPCIFIC_R 2 _POSIX_FD_MGMT 2 _POSIX_FIFO 2 _POSIX_FILE_ATTRIBUTES 2 _POSIX_FILE_LOCKING 2 _POSIX_FILE_SYSTEM 2 _POSIX_MULTI_PROCESS 2 _POSIX_NETWORKING 2 _POSIX_PII 2 _POSIX_PII_INTERNET 2 _POSIX_PII_INTERNET_DGRAM 2 _POSIX_PII_INTERNET_STREAM 2 _POSIX_PII_OSI 2 _POSIX_PII_OSI_CLTS 2 _POSIX_PII_OSI_COTS 2 _POSIX_PII_OSI_M 2 _POSIX_PII_SOCKET 2 _POSIX_PII_XTI 2 _POSIX_PIPE 2 _POSIX_POLL 2 _POSIX_REGEX_VERSION 2 _POSIX_SELECT 2 _POSIX_SINGLE_PROCESS 2 _POSIX_SYSTEM_DATABASE 2 _POSIX_SYSTEM_DATABASE_R 2 _POSIX_USER_GROUPS 2 _POSIX_USER_GROUPS_R 5 _POSIX_V6_ILP32_OFFBIG 5 _POSIX_V6_LP64_OFF64 5 _POSIX_V6_LPBIG_OFFBIG 5 _POSIX_V7_LPBIG_OFFBIG 5 _XBS5_ILP32_OFF32 5 _XBS5_ILP32_OFFBIG 5 _XBS5_LP64_OFF64 5 _XBS5_LPBIG_OFFBIG 7 _POSIX_V6_ILP32_OFF32 9 _POSIX_V7_ILP32_OFF32 9 _POSIX_V7_ILP32_OFFBIG 9 _POSIX_V7_LP64_OFF64 9 __ASSUME_IPC64- All _POSIX_* and _XBS_* warnings ought to have a single fix.
De-add-on-ification of NPTL. - Done!
New POSIX compliant fmemopen - Moved to 2.21
- PowerPC:
memmove optimization for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00597.html
memcpy alignment fix for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00355.html
strcat optimization for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00306.html
- x86
Add x86 32 bit vDSO time function support - https://sourceware.org/ml/libc-alpha/2014-06/msg00918.html (moved to 2.21)
Fix for setx*id checking: https://sourceware.org/ml/libc-alpha/2014-07/msg00048.html
- alpha
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
On systems with limited memory, stdio-common/test-vfprintf and stdio-common/bug22 may fail (bug 14231).
On some systems, a race condition may cause nptl/tst-cancel7 and nptl/tst-cancelx7 to fail (bug 14232).
- If cross-testing, and the physical path to the build directory is different on the build system and the host used for testing (if it involves a symlink on one system but not the other), io/ftwtest fails.
On systems with Linux kernels before September 2011, rt/tst-cpuclock2 fails (https://sourceware.org/ml/libc-alpha/2012-02/msg00468.html).
rt/tst-shm fails if /dev/shm is not mounted or does not have write permissions for the user running the tests.
If the test system does not have suitable copies of libgcc_s.so and libstdc++.so installed in system library directories, it is necessary to copy or symlink them into the build directory before testing (see https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html regarding the use of system library directories here).
3.1.2. Compiler-dependent
3.1.2.1. gcc 4.4
FAIL: conform/ISO11/*.h/conform FAIL: conform/*/inttypes.h/conform FAIL: conform/*/stdint.h/conform
The ISO11 conform tests fail because gcc 4.4 does not support -std=c1x
The inttypes.h and stdint.h conform tests fail because gcc 4.4 does not define __SIG_ATOMIC_TYPE__
In addition, several shared objects do not build with gcc 4.4:
- elf/tst-unique3lib2.so
- elf/tst-unique4lib.so
- elf/tst-unique3lib.so
The elf/tst-unique3 and elf/tst-unique4 tests need to be commented out to allow "make check" to complete normally. For more information see the discussion on libc-alpha here.
3.1.3. AArch64
Build system: AArch64 GNU/Linux, gcc version 4.8.2 20140120, GNU assembler version 2.23.52.0.1, Linux 3.15. (Carlos O'Donell)
FAIL: conform/POSIX/semaphore.h/conform
FAIL: conform/POSIX2008/cpio.h/conform
FAIL: conform/POSIX2008/semaphore.h/conform
FAIL: conform/UNIX98/cpio.h/conform
FAIL: conform/UNIX98/fmtmsg.h/conform
FAIL: conform/UNIX98/semaphore.h/conform
FAIL: conform/XOPEN2K/cpio.h/conform
FAIL: conform/XOPEN2K/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/cpio.h/conform
FAIL: conform/XOPEN2K8/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/semaphore.h/conform
FAIL: conform/XPG3/cpio.h/conform
FAIL: conform/XPG4/cpio.h/conform
FAIL: conform/XPG4/fmtmsg.h/conform
FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: math/basic-test
FAIL: rt/tst-mqueue6
Summary of test results:
18 FAIL
1651 PASS
120 XFAIL
4 XPASSThe tst-backtrace failures have been partly analyzed but no solution found yet:
https://sourceware.org/ml/libc-alpha/2014-08/msg00139.html
The math failures are probably a gcc bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61441
Build system: AArch64 GNU/Linux, gcc version 4.9.2 20140728, GNU assembler version 2.24.51, Linux version 3.14.0-rc6. (Marcus Shawcroft)
...
FAIL: debug/tst-backtrace4
FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: elf/check-abi-libc
FAIL: elf/tst-dl-iter-static
FAIL: rt/tst-cpuclock2
FAIL: rt/tst-cputimer1
Summary of test results:
7 FAIL
1653 PASS
120 XFAIL
4 XPASSThe check-abi-libc is due to my prefix setting impacting _nl_default_dirname.
3.1.4. Alpha
Build system: alphaev67 qemu 2.0.95, gcc version 4.9.0 (Gentoo 4.9.0 p1.0, pie-0.6.0), GNU assembler (Gentoo git) 2.24.51.20140619, Linux 3.16.0-rc6. (Richard Henderson)
... FAIL: crypt/badsalttest FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: math/test-fenv-return FAIL: math/test-float
The badsalttest failure is a real bug in strncmp, reading past the first difference. The test-fenv-return and test-float failures are believed to be qemu fp bugs.
3.1.5. ARM
Build system: ARM GNU/Linux (gnueabihf), gcc version 4.8.2, GNU assembler version 2.24, Linux 3.4.0. (Will Newton)
Summary of test results:
1704 PASS
120 XFAIL
4 XPASSBuild system: (hard-float ABI) GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.35 (Joseph Myers)
FAIL: io/ftwtest FAIL: nptl/tst-cancel7 FAIL: nptl/tst-cancelx7 FAIL: nptl/tst-cond-except FAIL: nptl/tst-cond17 FAIL: nptl/tst-cond24 FAIL: nptl/tst-cond25 FAIL: nptl/tst-robust1 FAIL: nptl/tst-robust3 FAIL: nptl/tst-robust4 FAIL: nptl/tst-robust7 FAIL: nptl/tst-robust9 FAIL: rt/tst-cpuclock2
The NPTL failures not mentioned as architecture-independent are thought to result from general unreliability of the board being used for testing.
Build system: (soft-float) GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.34.1 (Joseph Myers)
FAIL: elf/tst-tls13 FAIL: io/ftwtest FAIL: math/basic-test FAIL: nptl/tst-cancel7 FAIL: nptl/tst-cancelx7 FAIL: nptl/tst-mutexpi9 FAIL: nptl/tst-setuid3 FAIL: nptl/tst-stackguard1 FAIL: rt/tst-cpuclock1 FAIL: rt/tst-shm FAIL: stdio-common/bug22 FAIL: stdio-common/test-vfprintf
On soft-float systems, math/basic-test fails because of GCC bug 59833.
- rt/tst-cpuclock1 may have the same cause of failure as rt/tst-cpuclock2.
- elf/tst-tls13 and nptl/tst-stackguard1 are timeouts, possibly related to slow NFS.
- Cause of nptl/tst-mutexpi9 and nptl/tst-setuid3 failures unknown.
3.1.6. HPPA
Build system: HP-PARISC GNU/Linux, gcc version 4.6.3 (Gentoo 4.6.3 p1.13, pie-0.5.2), GNU assembler version 2.23.2, Linux 3.13 (Carlos O'Donell)
FAIL: conform/UNIX98/sys/mman.h/conform
FAIL: conform/UNIX98/sys/types.h/conform
FAIL: conform/UNIX98/sys/uio.h/conform
FAIL: conform/XOPEN2K/cpio.h/conform
FAIL: conform/XOPEN2K/fmtmsg.h/conform
FAIL: conform/XOPEN2K/ftw.h/conform
FAIL: conform/XOPEN2K/pthread.h/conform
FAIL: conform/XOPEN2K/regex.h/conform
FAIL: conform/XOPEN2K/spawn.h/conform
FAIL: conform/XOPEN2K/stdlib.h/conform
FAIL: conform/XOPEN2K/sys/mman.h/conform
FAIL: conform/XOPEN2K/sys/types.h/conform
FAIL: conform/XOPEN2K/sys/uio.h/conform
FAIL: conform/XOPEN2K8/aio.h/conform
FAIL: conform/XOPEN2K8/cpio.h/conform
FAIL: conform/XOPEN2K8/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/ftw.h/conform
FAIL: conform/XOPEN2K8/mqueue.h/conform
FAIL: conform/XOPEN2K8/pthread.h/conform
FAIL: conform/XOPEN2K8/regex.h/conform
FAIL: conform/XOPEN2K8/semaphore.h/conform
FAIL: conform/XOPEN2K8/spawn.h/conform
FAIL: conform/XOPEN2K8/stdlib.h/conform
FAIL: conform/XOPEN2K8/sys/mman.h/conform
FAIL: conform/XOPEN2K8/sys/types.h/conform
FAIL: conform/XOPEN2K8/sys/uio.h/conform
FAIL: conform/XPG3/cpio.h/conform
FAIL: conform/XPG4/cpio.h/conform
FAIL: conform/XPG4/fmtmsg.h/conform
FAIL: conform/XPG4/sys/mman.h/conform
FAIL: debug/tst-backtrace2
FAIL: debug/tst-backtrace3
FAIL: debug/tst-backtrace4
FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: debug/tst-chk1
FAIL: debug/tst-chk2
FAIL: debug/tst-chk3
FAIL: debug/tst-chk4
FAIL: debug/tst-chk5
FAIL: debug/tst-chk6
FAIL: debug/tst-lfschk1
FAIL: debug/tst-lfschk2
FAIL: debug/tst-lfschk3
FAIL: debug/tst-lfschk4
FAIL: debug/tst-lfschk5
FAIL: debug/tst-lfschk6
FAIL: debug/tst-longjmp_chk2
FAIL: elf/check-execstack
FAIL: elf/check-localplt
FAIL: elf/check-textrel
FAIL: elf/tst-addr1
FAIL: elf/tst-audit2
FAIL: math/test-double
FAIL: math/test-fenv-return
FAIL: math/test-float
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: nptl/tst-attr3
FAIL: nptl/tst-cancel11
FAIL: nptl/tst-cancel2
FAIL: nptl/tst-cancel20
FAIL: nptl/tst-cancel21
FAIL: nptl/tst-cancel21-static
FAIL: nptl/tst-cancel22
FAIL: nptl/tst-cancel23
FAIL: nptl/tst-cancel25
FAIL: nptl/tst-cancel3
FAIL: nptl/tst-cancel4
FAIL: nptl/tst-cancel5
FAIL: nptl/tst-cancel6
FAIL: nptl/tst-cancelx11
FAIL: nptl/tst-cancelx2
FAIL: nptl/tst-cancelx20
FAIL: nptl/tst-cancelx21
FAIL: nptl/tst-cancelx3
FAIL: nptl/tst-cancelx4
FAIL: nptl/tst-cancelx5
FAIL: nptl/tst-cancelx6
FAIL: nptl/tst-cleanup4
FAIL: nptl/tst-cleanupx4
FAIL: nptl/tst-fini1
FAIL: nptl/tst-key3
FAIL: nptl/tst-sem14
FAIL: nptl/tst-signal3
FAIL: nptl/tst-stack1
FAIL: posix/tst-getcpu
FAIL: rt/tst-aio64
FAIL: rt/tst-cputimer1
FAIL: rt/tst-mqueue8x
FAIL: stdlib/tst-makecontext
Summary of test results:
119 FAIL
1544 PASS
1 UNRESOLVED
123 XFAIL
1 XPASS* Custom patch required to build and run glibc for hppa.
3.1.7. IA64
Build system: ia64 Dual-Core Intel(R) Itanium(R) Processor 9040, gcc (Gentoo 4.7.3-r1 p1.4, pie-0.5.5), GNU assembler (Gentoo 2.23.2 p1.0), Linux 3.12.13-gentoo. (Mike Frysinger)
FAIL: debug/tst-backtrace4 FAIL: math/test-double FAIL: math/test-fenv-return FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: rt/tst-cpuclock2 FAIL: stdio-common/tst-long-dbl-fphex FAIL: stdlib/tst-makecontext3 FAIL: stdlib/tst-strtod6 FAIL: time/bug-getdate1
tst-backtrace4 is known to fail on IA64 due to limited backtrace output; mailing list thread
- tst-cpuclock2 seems to be flaky as it passes normally, but sometimes fails under load
makecontext is known to be limited on IA64 and the testsuite runs up against that; bug 14250
- bug-getdate1 seems to be flaky as it passes normally, but sometimes fails under load
- all the rest are math related and probably match some open bugs on the topic, or need some baselines updated
3.1.7.1. regression
- test-fenv-return ???
3.1.8. M68K
Build system: ARAnyM 0.9.16, openSUSE 13.2, gcc48-4.8.3+r212056, binutils-2.24, Linux 3.11.6-21-default (Andreas Schwab)
FAIL: math/basic-test FAIL: math/test-double FAIL: math/test-fenv FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-snan FAIL: posix/tst-getaddrinfo4 FAIL: stdio-common/bug22 FAIL: stdio-common/tstdiomisc
3.1.9. MicroBlaze
3.1.10. MIPS
Build system: GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.35.9 (Joseph Myers) - the following failures apply to both BE and LE, all of o32, n32 and n64, both hard-float and soft-float.
FAIL: elf/check-execstack FAIL: elf/check-localplt FAIL: elf/tst-audit1 FAIL: elf/tst-audit2 FAIL: elf/tst-audit8 FAIL: elf/tst-audit9 FAIL: io/ftwtest FAIL: stdio-common/bug22
Additional failures seen for hard-float o32:
FAIL: math/test-double FAIL: math/test-float
Additional failure seen for soft-float:
FAIL: math/test-fenv
- On soft-float MIPS systems, there is no support for floating-point exceptions and rounding modes, causing math/test-fenv to fail.
For hard-float MIPS, o32 ABI (maybe only some architecture variants), math/test-float and math/test-double fail with missing "invalid" exceptions; see bug 16399.
- MIPS GCC does not use PT_GNU_STACK markers (this is a GCC issue), causing elf/check-execstack to fail (the relevant kernel support went in around February 2010).
Peculiarities of MIPS ELF cause elf/tst-audit1, elf/tst-audit2, elf/tst-audit8, elf/tst-audit9 and elf/check-localplt to fail. For the first two, see bug 2981.
3.1.11. PowerPC (32-bit soft-float)
Build system: GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.34.1 (Joseph Myers)
FAIL: io/ftwtest FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: rt/tst-cpuclock2 FAIL: stdio-common/bug22
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.12. PowerPC (32-bit hard-float)
Build system: GCC version 4.9.2 20140813 (prerelease), binutils version 2.24.51.20140714, Linux 3.16.0-rc5. (Adhemerval Zanella)
FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: nptl/tst-cond18 FAIL: nptl/tst-eintr1
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.13. PowerPC (64-bit hard-float) - Big Endian (ELFv1)
Build system: GCC version 4.9.2 20140813 (prerelease), binutils version 2.24.51.20140714, Linux 3.16.0-rc5. (Adhemerval Zanella)
FAIL: elf/ifuncmain6pie FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: nptl/tst-cond18 FAIL: nptl/tst-eintr1 FAIL: rt/tst-cpuclock2
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
- I am investigating elf/ifuncmain6pie failure.
- It seems a GCC 4.9 issue, since I can not reproduce it with GCC 4.8 or GCC 4.7.
3.1.14. PowerPC (64-bit hard-float) - Little Endian (ELFv2)
Build system: GCC version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) , binutils version 2.24, Linux 3.13.0-27. (Adhemerval Zanella)
FAIL: math/test-ildoubl FAIL: math/test-ldouble
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.15. S/390 (32-bit)
Build system: s390 GNU/Linux, gcc version 4.9.0 20140217, GNU assembler version 2.24.51, Linux 3.6.2 (Stefan Liebler)
Summary of tests.sum results:
1666 PASS
121 XFAIL
3 XPASSFAIL: nptl/tst-setuid2
Summary of xtests.sum results:
1 FAIL
15 PASSnptl/tst-setuid2 passes with root privileges.
3.1.16. S/390 (64-bit)
Build system: s390x GNU/Linux, gcc version 4.9.0 20140217, GNU assembler version 2.24.51, Linux 3.13.6 (Stefan Liebler)
Summary of tests.sum results:
1703 PASS
120 XFAIL
4 XPASSFAIL: nptl/tst-setuid2
Summary of xtests.sum results:
1 FAIL
15 PASSnptl/tst-setuid2 passes with root privileges.
3.1.17. SH
Build system: Fedora 20, cross gcc 4.6.4, BFD version 2.23.52, Linux 2.6.32 (Kazumoto Kojima)
FAIL: c++-types-check
FAIL: crypt/sha256c-test
FAIL: csu/tst-atomic
FAIL: csu/tst-atomic-long
FAIL: debug/tst-backtrace4
FAIL: elf/check-abi-libc
FAIL: elf/check-localplt
FAIL: elf/tst-tls13
FAIL: iconvdata/iconv-test
FAIL: io/ftwtest
FAIL: libio/tst-memstream2
FAIL: libio/tst-wmemstream2
FAIL: localedata/tst-setlocale3
FAIL: malloc/tst-trim1
FAIL: math/basic-test
FAIL: math/bug-nextafter
FAIL: math/bug-nexttoward
FAIL: math/test-double
FAIL: math/test-fenv
FAIL: math/test-float
FAIL: math/test-idouble
FAIL: math/test-ifloat
FAIL: math/test-misc
FAIL: nptl/tst-cancel21-static
FAIL: nptl/tst-cancel24
FAIL: nptl/tst-cancel24-static
FAIL: nptl/tst-cond-except
FAIL: nptl/tst-cond22
FAIL: nptl/tst-cond25
FAIL: nptl/tst-cond7
FAIL: nptl/tst-cond8
FAIL: nptl/tst-cond8-static
FAIL: nptl/tst-fork1
FAIL: nptl/tst-mutex8
FAIL: nptl/tst-mutex8-static
FAIL: nptl/tst-mutexpi8
FAIL: nptl/tst-mutexpi8-static
FAIL: nptl/tst-once3
FAIL: nptl/tst-once4
FAIL: nptl/tst-oncex3
FAIL: nptl/tst-oncex4
FAIL: nptl/tst-sem11-static
FAIL: nptl/tst-sem12-static
FAIL: nptl/tst-setuid3
FAIL: posix/bug-regex24
FAIL: posix/tst-getcpu
FAIL: posix/tst-regex2
FAIL: setjmp/tst-setjmp-fp
FAIL: stdio-common/bug22
FAIL: stdlib/tst-strtod-overflow
FAIL: string/stratcliff
FAIL: wcsmbs/wcsatcliff
Summary of test results:
52 FAIL
1218 PASS
1 XFAIL
3.1.18. SPARC (32-bit)
FAIL: math/test-ldouble
* test-ldouble appears to be an unexpected underflow being signalled in erf() with 128-bit long doubles; bug 17257
3.1.19. SPARC (64-bit)
FAIL: math/test-ldouble
* test-ldouble is the same failure as seen on SPARC 32-bit.
3.1.20. TILE-Gx (64- and 32-bit)
Build system: CentOS 6.3 (gcc 4.4.7, binutils 2.21) but with kernel 3.4.76. (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 are due to bug 14266
3.1.21. TILEPro
Same environment as TILE-Gx tests, but with kernel 3.4.39. (Chris Metcalf)
All the test failures from TILE-Gx are also present on TILEPro, and additionally:
FAIL: conform/*/wchar.h/conform FAIL: elf/tst-audit1 FAIL: elf/tst-audit8 FAIL: elf/tst-dlmopen1
- The wchar.h conform tests fail because WCHAR_MIN/MAX do not have the correct type for some reason.
- The audit{1,8} tests fail with a SIGBUS. Not yet investigated.
- The dlmopen1 test fails with a SIGSEGV. Not yet investigated.
3.1.22. x86 (32-bit, Linux)
Some GCC releases miscompile the setxid support code in NPTL. This results in functions such as setgid failing with ENOSYS because an totally bogus system call number is being passed to the kernel. This has been fixed as GCC bug 61801.
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU assembler version 2.23.2 (x86_64-redhat-linux) using BFD version version 2.23.2, Linux 3.15.3-200.fc20.x86_64 (Carlos O'Donell). Built with -m32' and targetting i686-pc-linux-gnu'.
...
FAIL: nptl/tst-setuid3
FAIL: rt/tst-cputimer1
Summary of test results:
16 FAIL
1691 PASS
1 UNRESOLVED
120 XFAIL
4 XPASSIn addition, the following test fails when compiling with gcc-4.9:
FAIL: nptl/tst-cleanupx4
3.1.23. x86_64 (64-bit, Linux)
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU assembler version 2.23.2 (x86_64-redhat-linux) using BFD version version 2.23.2, Linux 3.15.3-200.fc20.x86_64 (Carlos O'Donell).
FAIL: conform/POSIX/semaphore.h/conform
FAIL: conform/POSIX2008/cpio.h/conform
FAIL: conform/POSIX2008/semaphore.h/conform
FAIL: conform/UNIX98/cpio.h/conform
FAIL: conform/UNIX98/fmtmsg.h/conform
FAIL: conform/UNIX98/semaphore.h/conform
FAIL: conform/XOPEN2K/cpio.h/conform
FAIL: conform/XOPEN2K/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/cpio.h/conform
FAIL: conform/XOPEN2K8/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/semaphore.h/conform
FAIL: conform/XPG3/cpio.h/conform
FAIL: conform/XPG4/cpio.h/conform
FAIL: conform/XPG4/fmtmsg.h/conform
Summary of test results:
14 FAIL
1708 PASS
121 XFAIL
3 XPASSThe conform failures are due to missing wrappers for these headers internally in glibc. We will need to fix this for builds without complete sysroots.
3.1.24. x86_64 (x32, Linux)
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU binutils 2.24.51 (20140806), Linux 3.15.8-200.fc20.x86_64 (H.J. Lu). Since clock_t and tv_nsec are long long for x32 while conform tests expect they are long, those failures are expected. elf/check-localplt is due to https://sourceware.org/bugzilla/show_bug.cgi?id=16512
FAIL: conform/ISO/time.h/conform
FAIL: conform/ISO11/time.h/conform
FAIL: conform/ISO99/time.h/conform
FAIL: conform/POSIX/mqueue.h/conform
FAIL: conform/POSIX/sched.h/conform
FAIL: conform/POSIX/time.h/conform
FAIL: conform/POSIX2008/mqueue.h/conform
FAIL: conform/POSIX2008/sys/select.h/conform
FAIL: conform/POSIX2008/sys/stat.h/conform
FAIL: conform/POSIX2008/time.h/conform
FAIL: conform/UNIX98/mqueue.h/conform
FAIL: conform/UNIX98/sched.h/conform
FAIL: conform/UNIX98/time.h/conform
FAIL: conform/XOPEN2K/sys/select.h/conform
FAIL: conform/XOPEN2K/time.h/conform
FAIL: conform/XOPEN2K8/mqueue.h/conform
FAIL: conform/XOPEN2K8/sys/stat.h/conform
FAIL: conform/XOPEN2K8/time.h/conform
FAIL: conform/XPG4/time.h/conform
FAIL: elf/check-localplt
20 FAIL
121 XFAIL
FAIL: nptl/tst-setuid2
1 FAIL
3.1.25. x86 (32-bit, Hurd)
3.2. Packaging Changes
Describe any distribution packing changes that may be required:
3.2.1. Update build recipies
With the de-addon-ification of nptl you should use --enable-add-ons to avoid getting the following error:
checking sysdep dirs... sysdeps/unix/sysv/linux/x86_64/64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86 sysdeps/unix/sysv/linux/wordsize-64 sysdeps/x86_64/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86_64 sysdeps/unix sysdeps/posix sysdeps/x86_64/64 sysdeps/x86_64/fpu/multiarch sysdeps/x86_64/fpu sysdeps/x86/fpu sysdeps/x86_64/multiarch sysdeps/x86_64 sysdeps/x86 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64/wordsize-64 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/wordsize-64 sysdeps/ieee754 sysdeps/generic configure: error: add-on nptl has no configure fragment or sysdeps tree
This is because nptl is no longer an add-on, it's an integral part of glibc.
3.2.2. Minimum Linux kernel version increased to 2.6.32
On Linux systems, the minimum required kernel version to build glibc-2.20 is 2.6.32.
3.2.3. Deprecation of _BSD_SOURCE and _SVID_SOURCE feature macros
The _BSD_SOURCE and _SVID_SOURCE feature macros are in the process of being deprecated for a cleaner interface for enabling or disabling all the additional features normally defined in the GNU C Library. The replacement is _DEFAULT_SOURCE, and provides everything provided by the previous two macros e.g. all options enabled by default if the compiler options would not restrict them.
Summary Table:
Feature Test Macro |
Version 2.18 |
Version 2.19 |
Version 2.20 |
_BSD_SOURCE |
Supported. ISO C, POSIX, and 4.3BSD things. |
Supported. |
Supported, but issues a warning if _DEFAULT_SOURCE is not defined. |
_SVID_SOURCE |
Supported. ISO C, POSIX, and SVID things. |
Supported. |
Supported, but issues a warning if _DEFAULT_SOURCE is not defined. |
_DEFAULT_SOURCE |
Unsupported (ignored). |
Supported. |
Supported. The default set of features (taking precedence over __STRICT_ANSI__). |
The _BSD_SOURCE and _SVID_SOURCE feature macros are not yet deprecated, but use of those macros will produce the following warning:
In file included from /usr/include/stdio.h:27:0,
from test3.c:2:
/usr/include/features.h:152:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^The recommend process for removing the warning is to the following:
Remove the defines for _BSD_SOURCE and _SVID_SOURCE to determine if your application actually needs them. Several of these define are cargo culted from older sources without a clear understanding of the interfaces they enable. The application may in fact not need either of these defines.
If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE, you only support glibc >= 2.20 and you're on Linux then define _DEFAULT_SOURCE instead like this:
#if defined __linux__ # define _DEFAULT_SOURCE 1 #else # define _BSD_SOURCE 1 # define _SVID_SOURCE 1 #endif
If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE and you must support glibc < 2.19 and glibc >= 2.20 then define all three unconditionally:
/* Legacy feature macros. */ #define _BSD_SOURCE 1 #define _SVID_SOURCE 1 /* New feature macro that provides everything _BSD_SOURCE and _SVID_SOURCE provided and possibly more. */ #define _DEFAULT_SOURCE 1
Eventually when _BSD_SOURCE and _SVID_SOURCE are removed your application will need to define _DEFAULT_SOURCE to continue to operate correctly. For more information on _DEFAULT_SOURCE see the glibc manual.