After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 543848 - [ladspa] Needs to link with -ldl for dlopen() and friends
[ladspa] Needs to link with -ldl for dlopen() and friends
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: 0.10.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-07-20 12:51 UTC by Sebastian Dröge (slomo)
Modified: 2008-07-21 16:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ladspa-linking.patch (1.59 KB, patch)
2008-07-20 13:05 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2008-07-20 12:51:59 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.
Comment 1 Sebastian Dröge (slomo) 2008-07-20 13:05:29 UTC
Created attachment 114849 [details] [review]
ladspa-linking.patch
Comment 2 Jan Schmidt 2008-07-20 21:28:11 UTC
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)
Comment 3 Sebastian Dröge (slomo) 2008-07-21 10:12:29 UTC
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? ;)
Comment 4 Jan Schmidt 2008-07-21 10:38:14 UTC
Remember.... what? Who are you people?

OK, OK, I remember. Patch looks fine :)
Comment 5 Sebastian Dröge (slomo) 2008-07-21 16:01:09 UTC
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.