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 725202 - ios: TLS GIO module does not work
ios: TLS GIO module does not work
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: packages
git master
Other Linux
: Normal normal
: 1.4.0
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-02-26 08:42 UTC by Sebastian Dröge (slomo)
Modified: 2014-09-04 11:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2014-02-26 08:42:03 UTC
The TLS GIO module does not work on iOS. Reason is that it is removed from the final application during linking as nothing is directly referencing the name of the module registration function. During runtime then the dlsym() to get the registration function will return NULL and the module is never registered.

Fix would be to never remove that symbol, or to use a GIO module registration mechanism that directly calls something inside the GIO module to register it.
Comment 1 Olivier Crête 2014-02-26 08:58:46 UTC
See the updated patch in attachment #270355 [details] on bug #684282
Comment 2 Sebastian Dröge (slomo) 2014-03-01 15:36:32 UTC
Olivier, do you plan to merge these changes into cerbero?
Comment 3 Olivier Crête 2014-03-03 18:27:04 UTC
I haven't had time to test on iOS/OSX yet, I had the same problem in a Linux static build. I'm still not sure that this patch is the best way to do it, We should probably remove g_io_module_load_static_module() entirely as suggested on the other bug.
Comment 4 Sebastian Dröge (slomo) 2014-03-03 18:43:37 UTC
Yes, and just call the function directly to register it. That seems to be the most sensible thing to do
Comment 5 Sebastian Dröge (slomo) 2014-03-03 18:44:24 UTC
If you want to merge it into cerbero, for Android and iOS there is some build system magic around this that needs to be adapted (but that's trivial, we should just not forget to do that).
Comment 6 Sebastian Dröge (slomo) 2014-03-07 13:12:42 UTC
Here's an intermediate fix for that... until GLib people know what they want to do. This is now directly calling stuff instead of going through dlopen() and magic.


commit 1b800edcbbabc44ede7b4e57749384e37f38f80a
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Fri Mar 7 14:09:36 2014 +0100

    Load static GIO modules directly instead of going through dlopen() on the executable
    
    This requires updating iOS projects, but before this change
    the static GIO modules couldn't be loaded at all anyway so
    it shouldn't affect any existing project.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=725202
Comment 7 Sebastian Dröge (slomo) 2014-09-04 11:21:55 UTC
Erm, this was fixed a long time ago :)