libprelude FTBFS on arm64, armhf, ppc64el, segfaults in testsuite
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libprelude (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
After applying some initial porting patches for floating point endianness detection in gnulib, libprelude still fails to build on ppc64el:
make[4]: Leaving directory `/build/
make check-TESTS check-local
make[4]: Entering directory `/build/
make[5]: Entering directory `/build/
../test-driver: line 95: 7666 Segmentation fault "$@" > $log_file 2>&1
FAIL: async-timer
PASS: idmef
PASS: idmef-criteria
PASS: idmef-message-
PASS: idmef-path
PASS: idmef-value
../test-driver: line 95: 7810 Segmentation fault "$@" > $log_file 2>&1
FAIL: prelude-client
PASS: prelude-string
The segfault in async-timer is:
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00003fffb7de7458 in prelude_init (argc=0x0, argv=0x0) at prelude.c:223
#2 0x0000000010000a44 in main () at async-timer.c:47
async-timer and prelude-client are the only two tests that call prelude_init().
tags: | added: ftbfs ppc64el |
summary: |
- libprelude FTBFS on ppc64el, segfaults in testsuite + libprelude FTBFS on arm64, armhf, ppc64el, segfaults in testsuite |
Relevant line of prelude.c is: atfork( prelude_ fork_prepare, prelude_ fork_parent, prelude_ fork_child) ;
ret = glthread_
libmissing defines glthread_atfork() to pthread_atfork() if available, and this has been correctly detected. So glthread_atfork() expands as:
# define glthread_ atfork( PREPARE_ FUNC, PARENT_FUNC, CHILD_FUNC) \ in_use () ? pthread_atfork (PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) : 0)
(pthread_
(pthread_in_use() evaluates true at build time)
Not seeing any obvious bugs in the threads handling.