summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-01-09 21:28:31 +0200
committerTor Lillqvist <tml@iki.fi>2013-01-19 23:58:40 +0200
commit5d7fad31ff1491896b4a517ce6ac652f537b7ba2 (patch)
treee8a8f33df3c2217c413df0e595633f125eadae93 /sal
parent9900f80d9e62cd0cd32f5203c28597496e18d690 (diff)
Use default visibility for exception types even when DISABLE_DYNLOADING
Otherwise the dlsym() lookup of the typeinfos in the C++/UNO bridge won't work. And it has to, because at least for iOS on ARM the dynamically created typeinfos don't match those the compiler-generated code tries to catch, so otherwise exceptions thrown across the bridge don't get caught. (Fascinating, I am able to talk about this stuff as if I understood it.) Change-Id: Ie0d4632743e18719782f55904fb76f45c944f20c
Diffstat (limited to 'sal')
-rw-r--r--sal/inc/sal/types.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
index b04126a712bf..57a1a6207ff6 100644
--- a/sal/inc/sal/types.h
+++ b/sal/inc/sal/types.h
@@ -300,11 +300,15 @@ typedef void * sal_Handle;
rtl/malformeduriexception.hxx.
*/
#if defined(__GNUC__) && ! defined(__MINGW32__)
-#define SAL_EXCEPTION_DLLPUBLIC_EXPORT SAL_DLLPUBLIC_EXPORT
-#define SAL_EXCEPTION_DLLPRIVATE SAL_DLLPRIVATE
+# if defined(DISABLE_DYNLOADING)
+# define SAL_EXCEPTION_DLLPUBLIC_EXPORT __attribute__((visibility("default")))
+# else
+# define SAL_EXCEPTION_DLLPUBLIC_EXPORT SAL_DLLPUBLIC_EXPORT
+# endif
+# define SAL_EXCEPTION_DLLPRIVATE SAL_DLLPRIVATE
#else
-#define SAL_EXCEPTION_DLLPUBLIC_EXPORT
-#define SAL_EXCEPTION_DLLPRIVATE
+# define SAL_EXCEPTION_DLLPUBLIC_EXPORT
+# define SAL_EXCEPTION_DLLPRIVATE
#endif
/** Use this as markup for functions and methods whose return value must be