diff options
author | Tor Lillqvist <tml@iki.fi> | 2013-01-09 21:28:31 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2013-01-19 23:58:40 +0200 |
commit | 5d7fad31ff1491896b4a517ce6ac652f537b7ba2 (patch) | |
tree | e8a8f33df3c2217c413df0e595633f125eadae93 /sal | |
parent | 9900f80d9e62cd0cd32f5203c28597496e18d690 (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.h | 12 |
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 |