Release/2.20

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:

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 ?

TRIMMED LIST OF FAILURES.

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 2.23.52.0.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

The 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 XPASS

The check-abi-libc is due to my prefix setting impacting _nl_default_dirname.

3.1.3. 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.4. 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 XPASS

Build 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

3.1.5. HPPA

3.1.6. 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

3.1.6.1. regression

3.1.7. M68K

3.1.8. MicroBlaze

3.1.9. 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

3.1.10. 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

3.1.11. 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

3.1.12. 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

3.1.13. 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

3.1.14. 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 XPASS

FAIL: nptl/tst-setuid2
Summary of xtests.sum results:
      1 FAIL
     15 PASS

nptl/tst-setuid2 passes with root privileges.

3.1.15. 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 XPASS

FAIL: nptl/tst-setuid2
Summary of xtests.sum results:
      1 FAIL
     15 PASS

nptl/tst-setuid2 passes with root privileges.

3.1.16. SH

3.1.17. 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.18. SPARC (64-bit)

FAIL: math/test-ldouble

* test-ldouble is the same failure as seen on SPARC 32-bit.

3.1.19. TILE-Gx

3.1.20. TILEPro

3.1.21. 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 XPASS

In addition, the following test fails when compiling with gcc-4.9:

FAIL: nptl/tst-cleanupx4

3.1.22. 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.23. 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.24. 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

_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:

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

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

None: Release/2.20 (last edited 2014-08-27 09:05:05 by AllanMcRae)