Source: eglibc Version: 2.19-1 Severity: important User: debian-al...@lists.debian.org Usertags: alpha Justification: fails to build from source but built in the past X-Debbugs-CC: debian-al...@lists.debian.org
eglibc FTBFS on alpha for two reasons, firstly, due to the inclusion of systemtap headers and, secondly, because of what might be broken FUTEX_CLOCK_REALTIME support in the kernel. The systemtap header inclusion introduces an invalid unsplit symbol reference to global_max_fast in inline asm leading to a failure to compile malloc/malloc.c, which is the reason for the compiler ICE seen in the build log at: http://buildd.debian-ports.org/status/fetch.php?pkg=eglibc&arch=alpha&ver=2.19-1&stamp=1401942698 The compiler ICE is now fixed in gcc upstream (PR target/61336) to a graceful error exit which won't help us in getting eglibc built on alpha. So my question: can we have the systemtap-sdt-dev build-dep removed from eglibc for a build on Alpha? (And what are the implications of that? Presumably nothing since even a number of official arches are not supported by systemtap?) With the systemtap headers removed the build gets to the test-suite with ominous looking failures in tst-rwlock6, tst-rwlock11, tst-rwlock12, etc. The assumption __ASSUME_FUTEX_CLOCK_REALTIME activated at kernel version 2.6.29 in the eglibc source would appear to be false for Alpha, or maybe the test suite failures are due to a broken kernel (I tested with kernels 3.10.x and 3.14.x and the build daemon is still on 3.13.x; all fail). Whatever, undefining __ASSUME_FUTEX_CLOCK_REALTIME results in correct behaviour for the rwlock tests. I attach a patch for that. For a successful test build (with a 3.10.x kernel) I used in debian/testsuite-checking/expected-results-alpha-linux-gnu-libc (and also for the alphaev67 variant libc) the following: annexc.out, Error 1 (ignored) badsalttest.out, Error 1 run-conformtest.out, Error 1 (ignored) test-double.out, Error 1 test-float.out, Error 1 test-snan.out, Error 1 tst-backtrace2.out, Error 1 tst-backtrace3.out, Error 1 tst-backtrace4.out, Error 1 tst-backtrace5.out, Error 1 tst-backtrace6.out, Error 1 tst-cancelx17.out, Error 1 tst-cpuclock2.out, Error 1 tst-eintr1.out, Error 1 tst-mqueue5.out, Error 1 tst-ptrguard1.o, Error 1 tst-stackguard1-static.o, Error 1 tst-stackguard1.o, Error 1 tst-timer.out, Error 139 tst-waitid.out, Error 1 tst-writev.out, Error 1 tst-cputimer1.out, Error 1 In the libc build the test suite failures were annexc.out, Error 1 (ignored) badsalttest.out, Error 1 run-conformtest.out, Error 1 (ignored) test-double.out, Error 1 test-float.out, Error 1 test-snan.out, Error 1 tst-backtrace2.out, Error 1 tst-backtrace3.out, Error 1 tst-backtrace4.out, Error 1 tst-backtrace5.out, Error 1 tst-backtrace6.out, Error 1 tst-eintr1.out, Error 1 tst-ptrguard1.o, Error 1 tst-stackguard1-static.o, Error 1 tst-stackguard1.o, Error 1 and the encountered progressions were: tst-cancelx17.out, Error 1 tst-cpuclock2.out, Error 1 tst-cputimer1.out, Error 1 tst-mqueue5.out, Error 1 tst-timer.out, Error 139 tst-waitid.out, Error 1 tst-writev.out, Error 1 In the alphaev67 build the test suite failures were: annexc.out, Error 1 (ignored) tst-ptrguard1.o, Error 1 tst-stackguard1-static.o, Error 1 tst-stackguard1.o, Error 1 so the encountered progressions were: badsalttest.out, Error 1 run-conformtest.out, Error 1 (ignored) test-double.out, Error 1 test-float.out, Error 1 test-snan.out, Error 1 tst-backtrace2.out, Error 1 tst-backtrace3.out, Error 1 tst-backtrace4.out, Error 1 tst-backtrace5.out, Error 1 tst-backtrace6.out, Error 1 tst-cancelx17.out, Error 1 tst-cpuclock2.out, Error 1 tst-cputimer1.out, Error 1 tst-eintr1.out, Error 1 tst-mqueue5.out, Error 1 tst-timer.out, Error 139 tst-waitid.out, Error 1 tst-writev.out, Error 1 It would seem that the alphaev67 library build leads to a much more robust library. Cheers Michael.
Index: eglibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h =================================================================== --- eglibc-2.19.orig/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h +++ eglibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h @@ -93,4 +93,7 @@ # define __ASSUME_FDATASYNC 1 #endif +/* Appears to have never worked on Alpha. */ +#undef __ASSUME_FUTEX_CLOCK_REALTIME + #endif /* _KERNEL_FEATURES_H */