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);
 

Reply via email to