diff options
author | Damjan Jovanovic <damjan@apache.org> | 2018-12-03 17:51:52 +0000 |
---|---|---|
committer | Damjan Jovanovic <damjan@apache.org> | 2018-12-03 17:51:52 +0000 |
commit | e8087fa293e6f3a5780ee3f18aa0a0aceb814e9e (patch) | |
tree | 64497bf59c2e56f0eebbddae3d2c0554cfcd4784 /cppuhelper | |
parent | 73866e708f1e89ec38fb43ad00d7afd852fa11c6 (diff) |
After much experimentation, it was found that on Windows
WeakImplHelper1 needs to be SAL_DLLPUBLIC_EXPORT to prevent
multiple definition errors when building in debug mode
as opposed to CPPUHELPER_DLLPUBLIC we would normally use.
Without -DCPPUHELPER_DLLIMPLEMENTATION, the header's
CPPUHELPER_DLLPUBLIC would become SAL_DLLPUBLIC_IMPORT,
and on MSVC that presumbly causes symbols to be redefined
and exported for some unknown reason, whereas when we use only
SAL_DLLPUBLIC_EXPORT, it is exported in multiple modules, but
at least when building those modules we won't get errors,
as the modules' dependencies presumably aren't searched.
This has no effect on FreeBSD and hopefully other platforms.
Make all WeakImplHelper[1-12] SAL_DLLPUBLIC_EXPORT just in case.
This need for mysterious platform-specific code attributes that
affect the linker in undocumented ways really reveals a
profound and terrible truth: how ugly, poor, flimsy, degenerate,
twisted, dark, revolting and sick C++ remains as a language,
even after decades of its development.
Patch by: me
Notes
Notes:
prefer: 36627af621d46674273f44e2eb85731419a41cc1
Diffstat (limited to 'cppuhelper')
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase1.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase10.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase11.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase12.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase2.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase3.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase4.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase5.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase6.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase7.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase8.hxx | 2 | ||||
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase9.hxx | 2 |
12 files changed, 12 insertions, 12 deletions
diff --git a/cppuhelper/inc/cppuhelper/implbase1.hxx b/cppuhelper/inc/cppuhelper/implbase1.hxx index fc1e9d256008..3879511c1d6d 100644 --- a/cppuhelper/inc/cppuhelper/implbase1.hxx +++ b/cppuhelper/inc/cppuhelper/implbase1.hxx @@ -88,7 +88,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1 > - class SAL_NO_VTABLE WeakImplHelper1 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper1 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1 diff --git a/cppuhelper/inc/cppuhelper/implbase10.hxx b/cppuhelper/inc/cppuhelper/implbase10.hxx index ed3e1d87f083..97d2d9f56cf0 100644 --- a/cppuhelper/inc/cppuhelper/implbase10.hxx +++ b/cppuhelper/inc/cppuhelper/implbase10.hxx @@ -98,7 +98,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10 > - class SAL_NO_VTABLE WeakImplHelper10 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper10 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10 diff --git a/cppuhelper/inc/cppuhelper/implbase11.hxx b/cppuhelper/inc/cppuhelper/implbase11.hxx index f189f16ca88c..f20a3f41c6c5 100644 --- a/cppuhelper/inc/cppuhelper/implbase11.hxx +++ b/cppuhelper/inc/cppuhelper/implbase11.hxx @@ -99,7 +99,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 > - class SAL_NO_VTABLE WeakImplHelper11 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper11 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11 diff --git a/cppuhelper/inc/cppuhelper/implbase12.hxx b/cppuhelper/inc/cppuhelper/implbase12.hxx index f95fce6e7dba..f8c90e572caf 100644 --- a/cppuhelper/inc/cppuhelper/implbase12.hxx +++ b/cppuhelper/inc/cppuhelper/implbase12.hxx @@ -100,7 +100,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12 > - class SAL_NO_VTABLE WeakImplHelper12 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper12 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12 diff --git a/cppuhelper/inc/cppuhelper/implbase2.hxx b/cppuhelper/inc/cppuhelper/implbase2.hxx index 24bbddf5a843..09f8bc76c44d 100644 --- a/cppuhelper/inc/cppuhelper/implbase2.hxx +++ b/cppuhelper/inc/cppuhelper/implbase2.hxx @@ -89,7 +89,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2 > - class SAL_NO_VTABLE WeakImplHelper2 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper2 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2 diff --git a/cppuhelper/inc/cppuhelper/implbase3.hxx b/cppuhelper/inc/cppuhelper/implbase3.hxx index 092e48feba85..12cf073fa1fd 100644 --- a/cppuhelper/inc/cppuhelper/implbase3.hxx +++ b/cppuhelper/inc/cppuhelper/implbase3.hxx @@ -90,7 +90,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3 > - class SAL_NO_VTABLE WeakImplHelper3 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper3 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3 diff --git a/cppuhelper/inc/cppuhelper/implbase4.hxx b/cppuhelper/inc/cppuhelper/implbase4.hxx index b4f0019212e5..d22c1f930de1 100644 --- a/cppuhelper/inc/cppuhelper/implbase4.hxx +++ b/cppuhelper/inc/cppuhelper/implbase4.hxx @@ -92,7 +92,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4 > - class SAL_NO_VTABLE WeakImplHelper4 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper4 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4 diff --git a/cppuhelper/inc/cppuhelper/implbase5.hxx b/cppuhelper/inc/cppuhelper/implbase5.hxx index fb5f0b8c7eb7..2cb93e85a81c 100644 --- a/cppuhelper/inc/cppuhelper/implbase5.hxx +++ b/cppuhelper/inc/cppuhelper/implbase5.hxx @@ -93,7 +93,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5 > - class SAL_NO_VTABLE WeakImplHelper5 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper5 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5 diff --git a/cppuhelper/inc/cppuhelper/implbase6.hxx b/cppuhelper/inc/cppuhelper/implbase6.hxx index 672f4d4cf63b..9e917704898a 100644 --- a/cppuhelper/inc/cppuhelper/implbase6.hxx +++ b/cppuhelper/inc/cppuhelper/implbase6.hxx @@ -94,7 +94,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6 > - class SAL_NO_VTABLE WeakImplHelper6 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper6 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6 diff --git a/cppuhelper/inc/cppuhelper/implbase7.hxx b/cppuhelper/inc/cppuhelper/implbase7.hxx index fa6159531e93..a3da5def2ada 100644 --- a/cppuhelper/inc/cppuhelper/implbase7.hxx +++ b/cppuhelper/inc/cppuhelper/implbase7.hxx @@ -96,7 +96,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7 > - class SAL_NO_VTABLE WeakImplHelper7 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper7 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7 diff --git a/cppuhelper/inc/cppuhelper/implbase8.hxx b/cppuhelper/inc/cppuhelper/implbase8.hxx index 8e2d4b94a01c..ee3fe419aba6 100644 --- a/cppuhelper/inc/cppuhelper/implbase8.hxx +++ b/cppuhelper/inc/cppuhelper/implbase8.hxx @@ -96,7 +96,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8 > - class SAL_NO_VTABLE WeakImplHelper8 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper8 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8 diff --git a/cppuhelper/inc/cppuhelper/implbase9.hxx b/cppuhelper/inc/cppuhelper/implbase9.hxx index fb8deaedd46e..cad14dea5a79 100644 --- a/cppuhelper/inc/cppuhelper/implbase9.hxx +++ b/cppuhelper/inc/cppuhelper/implbase9.hxx @@ -98,7 +98,7 @@ namespace cppu Your sub class defines method implementations for these interface(s). */ template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9 > - class SAL_NO_VTABLE WeakImplHelper9 + class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper9 : public OWeakObject , public ::com::sun::star::lang::XTypeProvider , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9 |