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 318031 - gstreamer should use gmodule-no-export in its .pc file
gstreamer should use gmodule-no-export in its .pc file
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: 0.10.11
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Reported: 2005-10-05 15:33 UTC by Matthias Clasen
Modified: 2006-09-28 17:16 UTC
See Also:
GNOME target: ---
GNOME version: ---

the patch (943 bytes, patch)
2005-10-05 15:34 UTC, Matthias Clasen
reviewed Details | Review

Description Matthias Clasen 2005-10-05 15:33:17 UTC
Trivial patch attached
Comment 1 Matthias Clasen 2005-10-05 15:34:46 UTC
Created attachment 53063 [details] [review]
the patch
Comment 2 Thomas Vander Stichele 2005-11-14 18:00:57 UTC
Hi Matthias,

could you elaborate a little ?
Comment 3 Andy Wingo 2005-11-30 13:26:00 UTC
See bug #125627. FWIW FC4 builds with this patch by default it seems. Applying
this patch to HEAD.
Comment 4 Andy Wingo 2005-11-30 16:12:48 UTC
Reopening -- this caused loading the gst.interfaces python module to bork.
Matthias could you elaborate a little? Is this really a bug?
Comment 5 Matthias Clasen 2005-11-30 16:22:58 UTC
It is not a bug. -Wl,--export-dynamic, makes things a little slower. It is only
needed for DSOs in which you look up symbols via dlsym, e.g when using the
libglade feature to autoconnect signal handlers. Maybe your python module needs
it as well.
Comment 6 Edward Hervey 2006-05-30 11:41:24 UTC
Matthias, your patch seems to be for gstreamer 0.8.11 which is no longer supported. Do you have the same issue with gstreamer 0.10.x ?
Comment 7 Tim-Philipp Müller 2006-08-07 13:09:51 UTC
<mclasen>  so, if the gst.interfaces module needs --export-symbols in order to work correctly, you should add it back, no big deal
Comment 8 Wim Taymans 2006-08-29 10:36:00 UTC
ping? wassup with this?
Comment 9 Jan Schmidt 2006-09-27 16:30:49 UTC
We definitely should not be using --export-dynamic in the Gstreamer core, or plugins, because it makes ld export every symbol and completely invalidates the point of passing -export-symbols-regex to libtool

If there's an issue with gst-python, we need to figure out what it is and fix it. I can't see the problem yet though - I've removed --export-symbols from GStreamer core here, and am keeping an open for the problem. If someone has info about exactly what it looks like, that'd help.
Comment 10 Jan Schmidt 2006-09-27 16:45:33 UTC
OK, so it makes gst-python crash with this, for some reason:

0x00002b1e7579d3eb in pyinterfaces_register_classes (d=0x6979c0) at interfaces.c:2819
2819        pyg_register_interface(d, "XOverlay", GST_TYPE_X_OVERLAY, &PyGstXOverlay_Type);
(gdb) bt
  • #0 pyinterfaces_register_classes
    at interfaces.c line 2819
  • #1 initinterfaces
    at interfacesmodule.c line 44
  • #2 _PyImport_LoadDynamicModule

Trying to get a pygobject with debug symbols built to figure out more precisely what is going on.
Comment 11 Jan Schmidt 2006-09-27 17:29:57 UTC
Ok, it seems that python-gst is implicitly relying on pulling in --export-dynamic from somewhere else. It needs extra stuff exported. Will fix tomorrow.
Comment 12 Jan Schmidt 2006-09-28 10:29:54 UTC
Fixed the python part:

        * gst/
        Explicitly export _PyGObject_API from our modules, as it's apparently
        needed for import. Previously we implicitly relied on a bug in the
        core providing --export-dynamic as a link flag.

I've no idea why _PyGObject_API is needed in our .so's. I guess pygobject must be looking up the symbol internally.
Comment 13 Jan Schmidt 2006-09-28 17:16:13 UTC
Fixed in CVS:
        Don't pull in gmodule-2.0.pc as a dependency in our .pc files - we
        want gmodule-no-export-2.0.pc instead so that we don't drag in
        --export-dynamic on every project that links to GStreamer.

        Also, make our export regex only match the start of symbols, rather
        than any symbol that contains '_gst' somewhere.

        * libs/gst/check/
        The libgstcheck we build does however need export-dynamic, as it
        produces some symbols that don't match our _gst... style regex.
        Fixes: #318031