Source: umockdev
Version: 0.19.7-1
Tags: ftbfs patch
User: [email protected]
Usertags: alpha
Severity: important
umockdev FTBFS on Alpha with the test suite hanging [1]:
Summary of Failures:
1/7 umockdev:umockdev TIMEOUT 150.85s killed
by signal 9 SIGKILL
4/7 umockdev:umockdev-run TIMEOUT 150.73s killed
by signal 9 SIGKILL
2/7 fails-valgrind - umockdev:umockdev-vala TIMEOUT 150.93s killed
by signal 9 SIGKILL
3/7 umockdev:ioctl-tree TIMEOUT 150.90s killed
by signal 9 SIGKILL
6/7 umockdev:static-code TIMEOUT 150.75s killed
by signal 9 SIGKILL
5/7 fails-valgrind - umockdev:umockdev-record TIMEOUT 150.81s killed
by signal 9 SIGKILL
7/7 fails-valgrind - umockdev:umockdev.py TIMEOUT 150.70s killed
by signal 9 SIGKILL
The reason for the hang is that the libumockdev-preload library
attempts to open libc as "libc.so.6" whereas on Alpha it is
"libc.so.6.1" so the dlopen() call fails of which libumockdev
does not even bother to check has succeeded before proceeding.
I attach a patch that detects if libumockdev-preload is being
compiled on Alpha and then uses the correct libc name. With that
umockdev builds to completion on Alpha.
Cheers,
Michael
[1]
https://buildd.debian.org/status/fetch.php?pkg=umockdev&arch=alpha&ver=0.19.7-1&stamp=1774524459&raw=0
--- a/src/libumockdev-preload.c
+++ b/src/libumockdev-preload.c
@@ -119,8 +119,13 @@
void *fp;
static void *nextlib;
- if (nextlib == NULL)
+ if (nextlib == NULL) {
+#ifdef __alpha
+ nextlib = dlopen("libc.so.6.1", RTLD_LAZY);
+#else
nextlib = dlopen("libc.so.6", RTLD_LAZY);
+#endif
+ }
fp = dlsym(nextlib, f);