1. Current status

The release branch of glibc-2.20 is maintained by Allan McRae ( ) 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:

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.20 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.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?

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 ?


3.1.1. Architecture-independent

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

3.1.2. AArch64

Build system: AArch64 GNU/Linux, gcc version 4.8.2 20140120, GNU assembler version, 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.3. Alpha

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. 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.15. SH

3.1.16. SPARC (32-bit)

3.1.17. SPARC (64-bit)

3.1.18. TILE-Gx

3.1.19. TILEPro

3.1.20. 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
    120 XFAIL
      4 XPASS

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.

Summary Table:

Feature Test Macro

Version 2.18

Version 2.19

Version 2.20


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.


Unsupported (ignored).


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:

#if defined __linux__
# define _DEFAULT_SOURCE 1
# define _BSD_SOURCE 1
# define _SVID_SOURCE 1

/* 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.  */

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.

None: Release/2.20 (last edited 2014-07-31 21:10:16 by SiddheshPoyarekar)