[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: