GNOME Bugzilla – Bug 543848
[ladspa] Needs to link with -ldl for dlopen() and friends
Last modified: 2008-07-21 16:01:09 UTC
Hi, the ladspa plugin fails to link as it doesn't link to libdl although needed: cc -shared .libs/libgstladspa_la-gstsignalprocessor.o .libs/libgstladspa_la-gstladspa.o .libs/libgstladspa_la-search.o .libs/libgstladspa_la-load.o -Wl,--as-needed /usr/lib/libgstreamer-0.10.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libxml2.so /usr/lib/libglib-2.0.so -lgstaudio-0.10 -lm -Wl,-z -Wl,defs -Wl,-O1 -pthread -Wl,-soname -Wl,libgstladspa.so -Wl,-version-script -Wl,.libs/libgstladspa.ver -o .libs/libgstladspa.so .libs/libgstladspa_la-search.o: In function `LADSPADirectoryPluginSearch': /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/search.c:70: undefined reference to `dlopen' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/search.c:74: undefined reference to `dlerror' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/search.c:75: undefined reference to `dlsym' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/search.c:78: undefined reference to `dlerror' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/search.c:84: undefined reference to `dlclose' .libs/libgstladspa_la-load.o: In function `findLADSPAPluginDescriptor': /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:163: undefined reference to `dlerror' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:164: undefined reference to `dlsym' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:168: undefined reference to `dlerror' .libs/libgstladspa_la-load.o: In function `unloadLADSPAPluginLibrary': /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:149: undefined reference to `dlclose' .libs/libgstladspa_la-load.o: In function `dlopenLADSPA': /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:87: undefined reference to `dlopen' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:49: undefined reference to `dlopen' /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:123: undefined reference to `dlopen' .libs/libgstladspa_la-load.o: In function `loadLADSPAPluginLibrary': /home/slomo/projects/debian/pkg-gstreamer/experimental/build-area/gst-plugins-bad0.10-0.10.7.2/ext/ladspa/load.c:136: undefined reference to `dlerror' collect2: ld returned 1 exit status make: *** [libgstladspa.la] Fehler 1 Patch coming soon.
Created attachment 114849 [details] [review] ladspa-linking.patch
Not sure why this is broken for you - ladspa links fine here for me, and seems to be pulling in libdl from somewhere already: ldd -r .libs/libgstladspa.so linux-gate.so.1 => (0xb7f9e000) libgstreamer-0.10.so.0 => /home/jan/devel/gstreamer/head/gstreamer/pkgconfig/../gst/.libs/libgstreamer-0.10.so.0 (0xb7ee2000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7e92000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7e8e000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e89000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7e84000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7e7b000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7d5c000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7cab000) libgstaudio-0.10.so.0 => /home/jan/devel/gstreamer/head/gst-plugins-base/pkgconfig/../gst-libs/gst/audio/.libs/libgstaudio-0.10.so.0 (0xb7c8d000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7c68000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c50000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7b01000) libselinux.so.1 => /lib/libselinux.so.1 (0xb7ae8000) /lib/ld-linux.so.2 (0xb7f9f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7ad2000) libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb7aab000) libgstbase-0.10.so.0 => /home/jan/devel/gstreamer/head/gstreamer/pkgconfig/../libs/gst/base/.libs/libgstbase-0.10.so.0 (0xb7a80000) libgstinterfaces-0.10.so.0 => /home/jan/devel/gstreamer/head/gst-plugins-base/gst-libs/gst/interfaces/.libs/libgstinterfaces-0.10.so.0 (0xb7a76000)
This is caused by gmodule-2.0.pc not putting in -ldl anymore in 2.17 and --as-needed. We talked about the same issue with the last core pre-releases some weeks ago, do you remember? ;)
Remember.... what? Who are you people? OK, OK, I remember. Patch looks fine :)
2008-07-21 Sebastian Dröge <sebastian.droege@collabora.co.uk> * configure.ac: * ext/ladspa/Makefile.am: Link the ladspa plugin with -ldl. It's needed for dlopen() and friends for loading the ladspa plugins and previously was linked in by gmodule. Fixes bug #543848.