Release/2.21
Contents
1. Current status
The release branch of glibc-2.21 is maintained by Carlos O'Donell and its current release is 2.21.0, which we expect to tag on January 30th 2015. There are no immediate plans for the next release.
The ref structure of this branch is:
- release/2.21/master: main branch
- glibc-2.21.N: revision releases tagged out of release/2.21/master
These people are interested in contents and further revisions tagged on the branch:
- PERSON1
- PERSON2
- ...
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.21 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.21/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?
Make -Wundef into an error. Completed by Joseph's turning on of -Werror
Finish -Wundef cleanup: no -Wundef warnings in build on any supported configuration. Core issues finished as of 3b566046c3e8cb252f4c0ab7b6041fef5098f1a5
Transactional Lock Elision for PowerPC:
Fix semaphore destruction (BZ #12674) https://sourceware.org/ml/libc-alpha/2014-12/msg00155.html
powerpc64 optimized string implementations:
2.2. Desirable this release?
Futex clean-up https://sourceware.org/ml/libc-alpha/2014-12/msg00134.html
2.3. Postpone to next release (2.22)
New POSIX-compliance fmemopen
- Intel vecotorized libm - libmvec
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
3.1.3. Alpha
Build system: Linux 3.16.0, gcc gentoo 4.9.2 p1.0, binutils 2.24.51, qemu 2.2.50
FAIL: conform/POSIX2008/termios.h/conform FAIL: conform/UNIX98/termios.h/conform FAIL: crypt/badsalttest FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: elf/check-localplt FAIL: math/atest-sincos FAIL: math/test-fenv-return FAIL: math/test-float Summary of test results: 9 FAIL 2127 PASS 128 XFAIL 74 XPASS
3.1.4. ARM
3.1.5. HPPA
3.1.6. IA64
3.1.7. M68K
3.1.8. MicroBlaze
3.1.9. MIPS
3.1.10. NIOS2
3.1.11. PowerPC (32-bit soft-float)
3.1.12. PowerPC (32-bit hard-float)
3.1.13. PowerPC (64-bit hard-float)
3.1.14. S/390 (32-bit)
3.1.15. S/390 (64-bit)
3.1.16. SH
3.1.17. SPARC (32-bit)
3.1.18. SPARC (64-bit)
3.1.19. TILE-Gx
3.1.20. TILEPro
3.1.21. x86 (32-bit, Linux)
Build system: Fedora 21 Build Box, gcc version 4.9.2 20141101 (Red Hat 4.9.2-1) (GCC) , GNU assembler version 2.24 (x86_64-redhat-linux) using BFD version version 2.24, Kernel 3.17.8-300.fc21.x86_64. (Carlos O'Donell)
FAIL: math/test-float Summary of test results: 1 FAIL 2169 PASS 1 UNRESOLVED 198 XFAIL 4 XPASS
The test float errors are all ERANGE failures:
testing float (without inline functions) Failure: exp10 (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: exp10 (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: exp10_downward (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: exp10_downward (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: exp10_towardzero (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: exp10_towardzero (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: exp2 (-0x4.01p+12): errno set to 0, expected 34 (ERANGE) Failure: exp2 (-0x4.32p+8): errno set to 0, expected 34 (ERANGE) Failure: exp2_downward (-0x4.01p+12): errno set to 0, expected 34 (ERANGE) Failure: exp2_downward (-0x4.32p+8): errno set to 0, expected 34 (ERANGE) Failure: exp2_towardzero (-0x4.01p+12): errno set to 0, expected 34 (ERANGE) Failure: exp2_towardzero (-0x4.32p+8): errno set to 0, expected 34 (ERANGE) Failure: pow10 (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: pow10 (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: pow10_downward (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: pow10_downward (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: pow10_towardzero (-0x1.31p+8): errno set to 0, expected 34 (ERANGE) Failure: pow10_towardzero (-0x1.344p+12): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x1.86a08p+16): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x1.f3fffep+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x1.f40002p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x2.9ffffcp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x2.a00004p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x2.edfffcp+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x2.ee0004p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x3.1ffffcp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x3.200004p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x3.e7fffcp+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x3.e80004p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x4.e1fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x4.e20008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x5.dbfff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x5.dc0008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.3ffff8p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.400008p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.d5fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.d60008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e2fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e30008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e3fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e40008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e4fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e50008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e5fff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.e60008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ebfff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ec0008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ecfff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ed0008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.edfff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ee0008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.eefff8p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x6.ef0008p+8): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x9.5ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0x9.60001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xa.c0001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.4ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.50001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.5ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.60001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.6ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.70001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.7ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.80001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.bffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.c0001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.cffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.d0001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.dffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.e0001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.effffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xb.f0001p+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xf.9ffffp+4): errno set to 0, expected 34 (ERANGE) Failure: tgamma (-0xf.a0001p+4): errno set to 0, expected 34 (ERANGE) Test suite completed: 33061 test cases plus 31378 tests for exception flags and 31378 tests for errno executed. 74 errors occurred.
Need to investigate these.
3.1.22. x86_64 (64-bit, Linux)
Build system: Fedora 21 Build Box, gcc version 4.9.2 20141101 (Red Hat 4.9.2-1) (GCC) , GNU assembler version 2.24 (x86_64-redhat-linux) using BFD version version 2.24, Kernel 3.17.8-300.fc21.x86_64. (Carlos O'Donell)
Summary of test results: 2184 PASS 1 UNRESOLVED 199 XFAIL 3 XPASS
3.1.23. x86_64 (x32, Linux)
Build system: Fedora 21/x86-64, gcc version 4.9.2 20150107 (Red Hat 4.9.2-5) (GCC) , GNU binutils 2.25.51.20150123, Kernel 3.18.3-201.fc21.x86_64. (H.J. Lu)
FAIL: elf/check-localplt FAIL: elf/tst-leaks1-mem FAIL: nptl/tst-robust8 FAIL: nptl/tst-sem1 FAIL: nptl/tst-sem14 FAIL: rt/tst-mqueue5 Summary of test results: 6 FAIL 1785 PASS 76 XFAIL 2 XPASS FAIL: nptl/tst-setuid2 Summary of test results for extra tests: 1 FAIL 15 PASS
3.1.24. x86 (32-bit, Hurd)
3.2. Packaging Changes
Describe any distribution packing changes that may be required.
3.2.1. Minimum required gcc version increased to 4.6
The minimum GCC version that can be used to build this version of the GNU C Library is GCC 4.6. Older GCC versions, and non-GNU compilers, can still be used to compile programs using the GNU C Library.
3.2.2. -Werror is enabled by default
The -Werror compiler flag in now enabled by default when building glibc. Although most warnings when building have been addressed, you may need to pass "--disable-werror" to configure when building with a toolchain combination that was untested by the developers.