Bug#750996: eglibc FTBFS on Alpha: malloc/malloc.os build failure and testsuite failures.
Source: eglibc
Version: 2.19-1
Severity: important
User: debian-alpha@lists.debian.org
Usertags: alpha
Justification: fails to build from source but built in the past
X-Debbugs-CC: debian-alpha@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 */
Reply to: