summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2015-02-02 15:22:52 +0100
committerTor Lillqvist <tml@collabora.com>2015-02-03 10:28:43 +0100
commit831ab93fa40160ee46a95b7604d64098b177c8dd (patch)
treeaf9889b4c173330d32f11c857442d25bee106c1b
parent75509c995bd51275d39cfd8fd2bd747b0f619b1c (diff)
libreofficekit_hook must be exported on iOS for dlsym() to find it
Change-Id: I824e977e99e8889e5cb69403feb0f1d5e1d0cc31
-rw-r--r--desktop/source/lib/init.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 154a8f5ae630..0072ecc824fa 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -847,7 +847,20 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath)
return bInitialized;
}
-SAL_DLLPUBLIC_EXPORT LibreOfficeKit *libreofficekit_hook(const char* install_path)
+// Undo our clever trick of having SAL_DLLPUBLIC_EXPORT actually not
+// meaning what is says in for the DISABLE_DYNLOADING case. See
+// <sal/types.h>. Normally, when building just one big dylib (Android)
+// or executable (iOS), most of our "public" symbols don't need to be
+// visible outside that resulting dylib/executable. But
+// libreofficekit_hook must be exported for dlsym() to find it,
+// though, at least on iOS.
+
+#if defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE) && defined(DISABLE_DYNLOADING)
+__attribute__ ((visibility("default")))
+#else
+SAL_DLLPUBLIC_EXPORT
+#endif
+LibreOfficeKit *libreofficekit_hook(const char* install_path)
{
if (!gImpl)
{