GNOME Bugzilla – Bug 725202
ios: TLS GIO module does not work
Last modified: 2014-09-04 11:21:55 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.
See the updated patch in attachment #270355 [details] on bug #684282
Olivier, do you plan to merge these changes into cerbero?
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.
Yes, and just call the function directly to register it. That seems to be the most sensible thing to do
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).
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
Erm, this was fixed a long time ago :)