[Bug 1489379] Comment bridged from LTC Bugzilla

bugproxy bugproxy at us.ibm.com
Wed Sep 2 22:20:30 UTC 2015


------- Comment From mauricfo at br.ibm.com 2015-09-02 22:11 EDT-------
Today's work on this..

This is not so simple to "fix".

libchecktur.so really requires a dynamic libgcc because it uses pthreads (namely pthread_cancel).
it can go without a link-time dependency on libgcc *if* it's not built with -fexceptions.

it will run, but crash when pthread_cancel() is called.
I think this is already happening w/ other pieces of the code (libmultipath, iirc) - it's just luck it didn't crash yet.

Some testing/experiments.

$ cat test.c
#include <pthread.h>
#include <stdlib.h>

void * loop(void *arg) {
}

int main() {
pthread_t thread;
pthread_create(&thread, NULL, &loop, NULL);
pthread_cancel(thread);  // this requires libgcc_s.so
return 0;
}

$ gcc -pthread -o test test.c

$ ./test; echo $?
0

$ ldd test
linux-vdso64.so.1 =>  (0x00003fff81730000)
libpthread.so.0 => /lib/powerpc64le-linux-gnu/libpthread.so.0 (0x00003fff816e0000)
libc.so.6 => /lib/powerpc64le-linux-gnu/libc.so.6 (0x00003fff81500000)
/lib64/ld64.so.2 (0x0000000050130000)

^ notice there's no dependency on libgcc_s at link-time, it's a run-time
dlopen() in pthread_cancel_init()

$ find /lib -name libgcc_s.so.1
/lib/powerpc64le-linux-gnu/libgcc_s.so.1

On installer:

~ # ./test
libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted

~ # find /lib -name libgcc_s.so.1
~ #

To be continued.

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to multipath-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1489379

Title:
  LTE: ISST:leeklp4 no mpath choices for install ubuntu 15.10

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1489379/+subscriptions



More information about the Ubuntu-server-bugs mailing list