| Subject: | libgomp and dlopen? |
|---|---|
| From: | Peter Weilbacher <newsspam@xxxxxxxxxxxxxx> |
| Date: | Mon, 17 Jul 2006 18:11:04 +0200 |
| Newsgroups: | gnu.gcc.help |
[Originally posted in de.comp.os.unix.programming but didn't receive an
answer, so trying again here where I hope it is more on topic.]
I wanted to make some tests using the OpenMP support in the gcc 4.2.0
20060708 snapshot. So I installed it in parallel to the system GCC
("gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)") into /usr/local and set
PATH and LD_LIBRARY_PATH accordingly.
The program that I want to carry the tests out with is actually a plugin
(muse_masterbias.so). The problem is that the program that loads the
plugin using dlopen (actually lt_dlopen but I tried normal dlopen and
that doesn't help), cannot load the plugin any more. Even though ldd
shows that all dependencies are resolved:
$ ldd /tmp/museptest/lib/muse/plugins/muse-0.00.04/muse_masterbias.so
libmuse.so.0 => /tmp/museptest/lib/libmuse.so.0 (0x0000002a9565d000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95764000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000002a958ea000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95a02000)
libgomp.so.1 => /usr/local/lib64/libgomp.so.1 (0x0000002a95c35000)
libcpldfs.so.1 => /usr/local/lib/libcpldfs.so.1 (0x0000002a95d3c000)
libcplui.so.1 => /usr/local/lib/libcplui.so.1 (0x0000002a95e41000)
libcpldrs.so.1 => /usr/local/lib/libcpldrs.so.1 (0x0000002a95f50000)
libcplcore.so.1 => /usr/local/lib/libcplcore.so.1 (0x0000002a9605f000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
librt.so.1 => /lib64/tls/librt.so.1 (0x0000002a961e0000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a962fa000)
libqfits.so => /usr/local/lib/libqfits.so (0x0000002a9640f000)
libcext.so.0 => /usr/local/lib/libcext.so.0 (0x0000002a99c4a000)
The Problem is probably with loading libgomp.so, even though again all
dependencies are resolved.
$ ldd /usr/local/lib64/libgomp.so.1
librt.so.1 => /lib64/tls/librt.so.1 (0x0000002a9565f000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a95779000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9588e000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
If I try to load the libs by hand (with lt_dlopen) I get this output:
lt_dlopen=libgomp.so.1
Could not open libgomp.so.1:
/usr/local/lib64/libgomp.so.1: shared object cannot be dlopen()ed
lt_dlopen=librt.so.1
lt_dlopen=libpthread.so.0
lt_dlopen=libc.so.6
lt_dlopen=/lib64/ld-linux-x86-64.so.2
lt_dlopen=/tmp/museptest/lib/muse/plugins/muse-0.00.04/muse_masterbias.so
Could not open
/tmp/museptest/lib/muse/plugins/muse-0.00.04/muse_masterbias.so:
libgomp.so.1: shared object cannot be dlopen()ed
(The lt_dlopen output is just a printf, the error messages after the
colon are from lt_dlerror().) I also rebuilt the calling program using
the same gcc 4.2 alpha.
Can someone enlighten me why libgomp cannot be loaded dynamically or
give me a hint what I am doing wrong or how I can debug this further?
TIA,
Peter.
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | pthread, skaller |
|---|---|
| Next by Date: | Re: libgomp and dlopen?, skaller |
| Previous by Thread: | pthread, skaller |
| Next by Thread: | Re: libgomp and dlopen?, skaller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |