Differences between revisions 33 and 34
Revision 33 as of 2012-12-26 04:28:33
Size: 15423
Comment:
Revision 34 as of 2013-05-22 08:12:33
Size: 15411
Comment: grammar
Deletions are marked like this. Additions are marked like this.
Line 50: Line 50:
[[Testing/ABI_checker|ABI checker]] result (relative to the glibc [[Release/2.16|2.16]]):
||<#EEEEEE>CPU \ OS ||<style="text-align:center;">GNU/Linux ||<style="text-align:center;">GNU/kFreeBSD ||... ||
[[Testing/ABI_checker|ABI checker]] result (relative to [[Release/2.16|2.16]]):
||<#EEEEEE>CPU \ Kernel ||<style="text-align:center;">GNU/Linux ||<style="text-align:center;">GNU/kFreeBSD ||... ||
Line 56: Line 56:


Release/2.17

The release branch of glibc-2.17 is maintained by David Miller.

The 2.17 release branch is release/2.17/master.

Machine status:

  • AArch64, builds, tested cross with issues listed below (By: Marcus Shawcroft, Linux 3.7.0-rc5+, GCC 4.7.3 20121105, Binutils 2.23.51.20121203)
  • x86, builds, some testsuite failures listed below (By: H.J. on Fedora 17, Linux 3.6.10, GCC 4.7.2, Binutils 2.23.51.0.6)
  • x86 GNU/Hurd, needs patching

  • x86-64, builds, some testsuite failures listed below (By: Carlos on FC17, Linux 3.3.4, GCC 4.7.2, Binutils 2.22.52.0.1)
  • x32, builds, some testsuite failures listed below (By: H.J. on Fedora 17, Linux 3.6.10, GCC 4.7.2, Binutils 2.23.51.0.6)
  • Power, ???
  • Power64, builds, some testsuite failures listed below (By: Siddhesh on Fedora 18, Linux 3.6.0, GCC 4.7.2, Binutils 2.23.51.0.1)
  • s390, builds, some testsuite failures listed below (By: Krebbel on Linux 2.6.35, GCC 4.8 r194628, Binutils: 2.23.51.20121023)
  • s390x, builds, some testsuite failures listed below (By: Krebbel on Linux 3.6.8, GCC 4.8 r194572, Binutils: 2.23.51.20121120) (By: Siddhesh on Fedora 18, Linux 3.6.0, GCC 4.7.2, Binutils 2.23.51.0.1)
  • ARM, builds, some testsuite failures listed below
  • MIPS, builds, some testsuite failures listed below
  • sparc, builds, no testsuite failures
  • sparc64, builds, no testsuite failures
  • Alpha, builds (cross-compile) (By: vapier on Gentoo, Linux 3.7, GCC 4.7.2, Binutils 2.23.1)
  • IA64, Builds, No testsuite regressions. (By: vapier on Gentoo, Linux 3.3.8, GCC 4.5.4, Binutils 2.22)
  • HP-PARISC, fails to build. Requires NPTL patches. Plan to have everything merged by 2.18 release. (By: Carlos on Gentoo, Linux 3.6.0-rc6, GCC 4.5.3, Binutils 2.22)
  • SH, builds (cross-compile) (By: vapier on Gentoo, Linux 3.7, GCC 4.7.2, Binutils 2.23.1)
  • m68k, ???
  • tilepro/tilegx, builds, some testsuite failures listed below (By: ChrisMetcalf on Tilera MDE 4.x, Linux 3.6.0, GCC 4.4, Binutils 2.21)

The ref structure of this branch is:

  • release/2.17/master: main branch
  • glibc-2.17.1: revision releases tagged out of release/2.17/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?

  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.17 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.17/master as well, more so if they tell me about it!).

ABI Compatibility Status

ABI checker result (relative to 2.16):

CPU \ Kernel

GNU/Linux

GNU/kFreeBSD

...

x86

100% (2012/11/30)

x86_64

100% (2012/11/30)

arm

...

Known Issues

Testsuite Failures

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 (http://sourceware.org/ml/libc-alpha/2012-02/msg00468.html).

  • 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 http://sourceware.org/ml/libc-alpha/2012-04/msg01014.html regarding the use of system library directories here).

AArch64

  • intl/tst-gettext fails when run cross, runs fine native:

tst-gettext.c:214: setlocale (LC_ALL, ""): No such file or directory
  • posix/tst-chmod fails intermittently when run cross against an NFS filesystem:

chmod(...,0) did not set ctime correctly

ARM

  • On systems with VFPv3 or VFPv4 (not VFPv2, VFPv3U or VFPv4U), math/test-fenv fails. fesetenv (FE_NOMASK_ENV) fails on such systems for lack of support for trapping exceptions, but the test does not handle that failure; feenableexcept should also fail, but does not, and the test does not handle failure of feenableexcept either.
  • On systems not using VFP, math/test-fenv, math/test-misc, math/test-fpucw, math/bug-nextafter, math/bug-nexttoward, math/test-float, math/test-double, math/test-ifloat and math/test-idouble fail (the lack of support for floating point exceptions and rounding modes is determined at run time, and while tests generally check for errors from fesetround they do not handle a run-time lack of exceptions being raised).
  • On systems with VFP support, but where glibc is built for soft-float, math/test-fenv, math/test-misc, math/bug-nextafter, math/bug-nexttoward, math/test-float, math/test-double, math/test-ifloat, math/test-idouble and stdlib/tst-strtod-round fail (fesetround passes, but does not affect the copies of libgcc functions linked into glibc; see bug 10064).

IA64

make[2]: [/home/vapier/glibc/build/math/test-float.out] Error 1
make[2]: [/home/vapier/glibc/build/math/test-double.out] Error 1
make[2]: [/home/vapier/glibc/build/math/test-ldouble.out] Error 1
make[2]: [/home/vapier/glibc/build/math/test-ildoubl.out] Error 1
make[2]: [/home/vapier/glibc/build/math/test-ifloat.out] Error 1
make[2]: [/home/vapier/glibc/build/math/test-idouble.out] Error 1
make[2]: [/home/vapier/glibc/build/stdlib/tst-makecontext3.out] Error 1
make[2]: [/home/vapier/glibc/build/stdio-common/tst-long-dbl-fphex.out] Error 1
make[2]: [/home/vapier/glibc/build/posix/tst-getcpu.out] Error 1
make[2]: [/home/vapier/glibc/build/posix/annexc.out] Error 1 (ignored)
make[2]: [/home/vapier/glibc/build/conform/run-conformtest.out] Error 1 (ignored)
make[2]: [/home/vapier/glibc/build/debug/tst-longjmp_chk2.out] Error 1
  • makecontext is known to be limited on ia64 and the testsuite runs up against that; bug 14250

  • tst-getcpu hits a bug in the kernel; upstream patch has yet to be merged

  • tst-longjmp_chk2 needs arch-specific hooks implemented
  • some of the math tests probably match some open bugs on the topic

MIPS

  • On MIPS64 (n32 and n64), long double is implemented using fp-bit without support for exceptions and rounding modes, which causes the following tests to fail: math/test-misc, math/bug-nextafter, math/bug-nexttoward, math/test-ldouble, math/test-ildoubl, stdlib/tst-strtod-round.
  • On soft-float MIPS systems, there is no support for floating-point exceptions and rounding modes, causing the following tests to fail: math/test-fenv, math/test-misc, math/bug-nextafter, math/bug-nexttoward, math/test-float, math/test-double, math/test-ifloat, math/test-idouble, stdlib/bug-getcontext.
  • 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 and elf/check-localplt to fail. For the first two, see bug 2981.

PowerPC32 (soft-float)

  • math/test-ldouble and math/test-ildoubl fail. Underflowing results of fmal are inaccurate in directed rounding modes, and one test of clog10l and one of clogl have the wrong sign of zero in the imaginary part of the result, probably because the soft-fp code used in libgcc as part of implementing IBM long double does not handle the software rounding mode from libc and does not handle signs of zero results the same as the instruction used in the hardware floating-point case. As for hard-float, one clogl test has a missing underflow exception and one csqrtl test has a spurious underflow exception.

Power64

Build system: FC18, GCC 4.7.2, Binutils 2.23.51.0.1, Kernel 3.6.0

make[2]: *** [/root/glibc-build/math/test-ldouble.out] Error 1
make[1]: *** [math/tests] Error 2
make[2]: [/root/glibc-build/posix/annexc.out] Error 1 (ignored)
make[2]: [/root/glibc-build/conform/run-conformtest.out] Error 1 (ignored)
make: *** [check] Error 2
  • test-ldouble.out

testing long double (without inline functions)
Failure: Real part of: clog (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -1.110223024625156602053389888482372171810e-16 + 9.332636185032188789900895447238171696171e-302 i: Exception "Underflow" not set
Failure: Real part of: csqrt (0x1p-500 + 0x1p-1074 i) == 5.527147875260444560247265192192255725514e-76 + 4.469444793151709302716387622440056066334e-249 i: Exception "Underflow" set

Test suite completed:
  6264 test cases plus 5256 tests for exception flags executed.
  2 errors occurred.

Tile

  • tile doesn't handle -fexceptions correctly for pthread_cancel(); see bug 14266.

x86-64

Build system: FC17, GCC 4.7.2, Binutils 2.22.50.0.1, Kernel 3.3.4

make[2]: [glibc/posix/annexc.out] Error 1 (ignored)
make[2]: *** [glibc/nptl/tst-eintr1.out] Error 1
make[1]: *** [nptl/tests] Error 2
make[2]: [glibc/conform/run-conformtest.out] Error 1 (ignored)
make: *** [check] Error 2
  • nptl/tst-eintr1.out:

.............................................tf1: pthread_create failed: Resource temporarily unavailable
tf1: pthread_create failed: Resource temporarily unavailable

This is a kernel race, where it is unable to reap the exiting thread fast enough. This is seen regularly on x86_64, but the root cause is not necessarily architecture specific.

s390

Build system: Linux 2.6.35, GCC 4.8 r194628, Binutils: 2.23.51.20121023)

Failed to remake target file `/build/glibc/glibc-build-21122012/nptl/tst-cleanup2.out'.
Failed to remake target file `/build/glibc/glibc-build-21122012/nptl/tst-cleanupx2.out'.
Failed to remake target file `/build/glibc/glibc-build-21122012/rt/tst-cpuclock2.out'.

s390x

Build system: Linux 3.6.8, GCC 4.8 r194572, Binutils: 2.23.51.20121120

Failed to remake target file `/home/andreas/glibc/glibc-build/nptl/tst-cleanup2.out'.
Failed to remake target file `/home/andreas/glibc/glibc-build/nptl/tst-cleanupx2.out'.

Build system: FC18, GCC 4.7.2, Binutils 2.23.51.0.1, Kernel 3.6.0

make[2]: *** [/root/glibc-build/math/test-float.out] Error 1
make[2]: *** [/root/glibc-build/math/test-double.out] Error 1
make[2]: *** [/root/glibc-build/math/test-ldouble.out] Error 1
make[2]: *** [/root/glibc-build/math/test-ildoubl.out] Error 1
make[2]: *** [/root/glibc-build/math/test-ifloat.out] Error 1
make[2]: *** [/root/glibc-build/math/test-idouble.out] Error 1
make[1]: *** [math/tests] Error 2
make[2]: [/root/glibc-build/posix/annexc.out] Error 1 (ignored)
make[2]: *** [/root/glibc-build/rt/tst-cpuclock2.out] Error 1
make[1]: *** [rt/tests] Error 2
make[2]: [/root/glibc-build/conform/run-conformtest.out] Error 1 (ignored)
make: *** [check] Error 2

live thread clock fffffffffffa02fe resolution 0.000000001
live thread before sleep => 0.000095657
self thread before sleep => 0.000258345
live thread after sleep => 0.500013046
self thread after sleep => 0.000363238
absolute clock_nanosleep on PROCESS_CPUTIME_ID 18446744073709550750 past target (outside reasonable range)
absolute clock_nanosleep on PROCESS_CPUTIME_ID slept 99999134 (outside reasonable range)

Build Failures

Describe build failures here and how to fix them.

HP-PARISC

Build fauilure is:

pthread_create.c: In function ‘start_thread’:
pthread_create.c:398:3: error: #error "to do"
pthread_create.c:400:3: error: ‘freesize’ undeclared (first use in this function)
pthread_create.c:400:3: note: each undeclared identifier is reported only once for each function it appears in
pthread_create.c:393:10: warning: unused variable ‘pagesize_m1’
make[2]: *** [/home/carlos/build/glibc/nptl/pthread_create.o] Error 1
make[2]: Leaving directory `/home/carlos/src/glibc/nptl'
make[1]: *** [nptl/subdir_lib] Error 2
make[1]: Leaving directory `/home/carlos/src/glibc'
make: *** [all] Error 2

The patch to fix the build is located here hppa-nptl-2012-12-16.diff.

Packaging Changes

Due to changes in the installed headers and the libraries itself, userland applications might not build anymore. The following problems have been noticed while rebuilding distributions like openSUSE:

  • Some packages had missing includes (e.g. signal.h or stdint.h). Those are easily fixed by including the header defining the missing types.
  • The functions setfsgid() and setfsuid() produce warnings when the return value is not checked and thus fail to when -Werror is used. The proper fix is to check whether these functions have a return value less than 0.
  • The `clock_*' suite of functions was moved from librt to libc. Some configure scripts check only whether clock_gettime() is in librt and assume that other functions like mq_gettattr() are in the same library. So, the configure check for clock_gettime() in librt needs to be extended to look for other functions as well.
  • The __secure_getenv() internal function was made public under the new name secure_getenv(). The old symbol is no longer available for linking, applications should switch to use the new name, or, in case of necessity, check for the new name first and fall back to the old name.

None: Release/2.17 (last edited 2013-12-30 13:50:52 by MikeFrysinger)