1. Current status
The release branch of glibc-2.20 is maintained by Allan McRae ( firstname.lastname@example.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:
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!).
What things do we want to accomplish this release?
2.1. Release blockers?
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/
2.2. Desirable this release?
- Finish -Wundef cleanup: no -Wundef warnings in build on any supported configuration.
De-add-on-ification of NPTL.
- New POSIX compliant fmemopen
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 (waiting on updated patch)
Add x86 32 bit vDSO time function support - https://sourceware.org/ml/libc-alpha/2014-06/msg00918.html
Fix for setx*id checking: https://sourceware.org/ml/libc-alpha/2014-07/msg00048.html
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.
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
Build system: AArch64 GNU/Linux, gcc version 4.8.2 20140120, GNU assembler version 22.214.171.124.1, Linux 3.15. (Carlos O'Donell)
... 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 XPASS
3.1.10. PowerPC (32-bit soft-float)
3.1.11. PowerPC (32-bit hard-float)
3.1.12. PowerPC (64-bit hard-float)
3.1.13. S/390 (32-bit)
3.1.14. S/390 (64-bit)
3.1.16. SPARC (32-bit)
3.1.17. SPARC (64-bit)
3.1.20. x86 (32-bit, Linux)
3.1.21. 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).
... Summary of test results: 14 FAIL 1708 PASS 121 XFAIL 3 XPASS
3.1.22. x86_64 (x32, Linux)
3.1.23. 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. 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.
Feature Test Macro
Supported. ISO C, POSIX, and 4.3BSD things.
Supported, but issues a warning if _DEFAULT_SOURCE is not defined.
Supported. ISO C, POSIX, and SVID things.
Supported, but issues a warning if _DEFAULT_SOURCE is not defined.
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.