Author: damjan Date: Sat Mar 31 08:16:54 2018 New Revision: 1828087 URL: http://svn.apache.org/viewvc?rev=1828087&view=rev Log: The main/jvmaccess module stubbornly refuses to build on all setups.
As per https://gcc.gnu.org/wiki/Visibility it turns out that GCC needs a typeinfo lookup when exceptions are thrown between different shared libraries. This means main/jvmaccess needs to export typeinfos for its exception classes. However on Windows this breaks the build due to missing array new in its base class, so typeinfos mustn't be exported for the build to succeed. Thus, we don't export the typeinfo from the exception classes on Windows, but we do export it on other setups. (The more I work with C++, the more I hate it.) Patch by: me Modified: openoffice/trunk/main/jvmaccess/inc/jvmaccess/unovirtualmachine.hxx openoffice/trunk/main/jvmaccess/inc/jvmaccess/virtualmachine.hxx openoffice/trunk/main/jvmaccess/util/gcc3.map openoffice/trunk/main/jvmaccess/util/mingw.map Modified: openoffice/trunk/main/jvmaccess/inc/jvmaccess/unovirtualmachine.hxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/jvmaccess/inc/jvmaccess/unovirtualmachine.hxx?rev=1828087&r1=1828086&r2=1828087&view=diff ============================================================================== --- openoffice/trunk/main/jvmaccess/inc/jvmaccess/unovirtualmachine.hxx (original) +++ openoffice/trunk/main/jvmaccess/inc/jvmaccess/unovirtualmachine.hxx Sat Mar 31 08:16:54 2018 @@ -40,7 +40,11 @@ class UnoVirtualMachine: public salhelpe public: /** An exception indicating failure to create a UnoVirtualMachine. */ +#if defined _MSC_VER class CreationException +#else + class JVMACCESS_DLLPUBLIC CreationException +#endif { public: JVMACCESS_DLLPUBLIC CreationException(); Modified: openoffice/trunk/main/jvmaccess/inc/jvmaccess/virtualmachine.hxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/jvmaccess/inc/jvmaccess/virtualmachine.hxx?rev=1828087&r1=1828086&r2=1828087&view=diff ============================================================================== --- openoffice/trunk/main/jvmaccess/inc/jvmaccess/virtualmachine.hxx (original) +++ openoffice/trunk/main/jvmaccess/inc/jvmaccess/virtualmachine.hxx Sat Mar 31 08:16:54 2018 @@ -59,7 +59,11 @@ public: public: /** An exception indicating failure to create an AttachGuard. */ +#if defined _MSC_VER class CreationException +#else + class JVMACCESS_DLLPUBLIC CreationException +#endif { public: JVMACCESS_DLLPUBLIC CreationException(); Modified: openoffice/trunk/main/jvmaccess/util/gcc3.map URL: http://svn.apache.org/viewvc/openoffice/trunk/main/jvmaccess/util/gcc3.map?rev=1828087&r1=1828086&r2=1828087&view=diff ============================================================================== --- openoffice/trunk/main/jvmaccess/util/gcc3.map (original) +++ openoffice/trunk/main/jvmaccess/util/gcc3.map Sat Mar 31 08:16:54 2018 @@ -28,8 +28,8 @@ UDK_3.1 { _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionC1ERKS2_; # jvmaccess::VirtualMachine::AttachGuard::CreationException::CreationException(CreationException const &) _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionD0Ev; # jvmaccess::VirtualMachine::AttachGuard::CreationException::~CreationException() _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionaSERKS2_; # jvmaccess::VirtualMachine::AttachGuard::CreationException::operator =(CreationException const &) - # _ZTIN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo for jvmaccess::VirtualMachine::AttachGuard::CreationException - # _ZTSN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo name for jvmaccess::VirtualMachine::AttachGuard::CreationException + _ZTIN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo for jvmaccess::VirtualMachine::AttachGuard::CreationException + _ZTSN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo name for jvmaccess::VirtualMachine::AttachGuard::CreationException _ZN9jvmaccess14VirtualMachine11AttachGuardC1ERKN3rtl9ReferenceIS0_EE; # jvmaccess::VirtualMachine::AttachGuard::AttachGuard(rtl::Reference< VirtualMachine > const &) _ZN9jvmaccess14VirtualMachine11AttachGuardC2ERKN3rtl9ReferenceIS0_EE; # jvmaccess::VirtualMachine::AttachGuard::AttachGuard(rtl::Reference< VirtualMachine > const &) _ZN9jvmaccess14VirtualMachine11AttachGuardD1Ev; # jvmaccess::VirtualMachine::AttachGuard::~AttachGuard() @@ -68,8 +68,8 @@ UDK_3.3 { _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionD1Ev; # jvmaccess::UnoVirtualMachine::CreationException::~CreationException() _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionD2Ev; # jvmaccess::UnoVirtualMachine::CreationException::~CreationException() _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionaSERKS1_; # jvmaccess::UnoVirtualMachine::CreationException::operator =(CreationException const &) - # _ZTIN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo for jvmaccess::UnoVirtualMachine::CreationException - # _ZTSN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo name for jvmaccess::UnoVirtualMachine::CreationException + _ZTIN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo for jvmaccess::UnoVirtualMachine::CreationException + _ZTSN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo name for jvmaccess::UnoVirtualMachine::CreationException _ZN9jvmaccess17UnoVirtualMachineC1ERKN3rtl9ReferenceINS_14VirtualMachineEEEPv; # jvmaccess::UnoVirtualMachine::UnoVirtualMachine(rtl::Reference< jvmaccess::VirtualMachine > const &, void *) _ZN9jvmaccess17UnoVirtualMachineC2ERKN3rtl9ReferenceINS_14VirtualMachineEEEPv; # jvmaccess::UnoVirtualMachine::UnoVirtualMachine(rtl::Reference< jvmaccess::VirtualMachine > const &, void *) _ZNK9jvmaccess17UnoVirtualMachine17getVirtualMachineEv; # jvmaccess::UnoVirtualMachine::getVirtualMachine() const Modified: openoffice/trunk/main/jvmaccess/util/mingw.map URL: http://svn.apache.org/viewvc/openoffice/trunk/main/jvmaccess/util/mingw.map?rev=1828087&r1=1828086&r2=1828087&view=diff ============================================================================== --- openoffice/trunk/main/jvmaccess/util/mingw.map (original) +++ openoffice/trunk/main/jvmaccess/util/mingw.map Sat Mar 31 08:16:54 2018 @@ -28,8 +28,8 @@ UDK_3_0_0 { _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionC1ERKS2_; # jvmaccess::VirtualMachine::AttachGuard::CreationException::CreationException(CreationException const &) _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionD0Ev; # jvmaccess::VirtualMachine::AttachGuard::CreationException::~CreationException() _ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionaSERKS2_; # jvmaccess::VirtualMachine::AttachGuard::CreationException::operator =(CreationException const &) - # _ZTIN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo for jvmaccess::VirtualMachine::AttachGuard::CreationException - # _ZTSN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo name for jvmaccess::VirtualMachine::AttachGuard::CreationException + _ZTIN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo for jvmaccess::VirtualMachine::AttachGuard::CreationException + _ZTSN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionE; # typeinfo name for jvmaccess::VirtualMachine::AttachGuard::CreationException _ZN9jvmaccess14VirtualMachine11AttachGuardC1ERKN3rtl9ReferenceIS0_EE; # jvmaccess::VirtualMachine::AttachGuard::AttachGuard(rtl::Reference< VirtualMachine > const &) _ZN9jvmaccess14VirtualMachine11AttachGuardC2ERKN3rtl9ReferenceIS0_EE; # jvmaccess::VirtualMachine::AttachGuard::AttachGuard(rtl::Reference< VirtualMachine > const &) _ZN9jvmaccess14VirtualMachine11AttachGuardD1Ev; # jvmaccess::VirtualMachine::AttachGuard::~AttachGuard() @@ -52,8 +52,8 @@ UDK_3_0_0 { _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionD1Ev; # jvmaccess::UnoVirtualMachine::CreationException::~CreationException() _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionD2Ev; # jvmaccess::UnoVirtualMachine::CreationException::~CreationException() _ZN9jvmaccess17UnoVirtualMachine17CreationExceptionaSERKS1_; # jvmaccess::UnoVirtualMachine::CreationException::operator =(CreationException const &) - # _ZTIN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo for jvmaccess::UnoVirtualMachine::CreationException - # _ZTSN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo name for jvmaccess::UnoVirtualMachine::CreationException + _ZTIN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo for jvmaccess::UnoVirtualMachine::CreationException + _ZTSN9jvmaccess17UnoVirtualMachine17CreationExceptionE; # typeinfo name for jvmaccess::UnoVirtualMachine::CreationException _ZN9jvmaccess17UnoVirtualMachineC1ERKN3rtl9ReferenceINS_14VirtualMachineEEEPv; # jvmaccess::UnoVirtualMachine::UnoVirtualMachine(rtl::Reference< jvmaccess::VirtualMachine > const &, void *) _ZN9jvmaccess17UnoVirtualMachineC2ERKN3rtl9ReferenceINS_14VirtualMachineEEEPv; # jvmaccess::UnoVirtualMachine::UnoVirtualMachine(rtl::Reference< jvmaccess::VirtualMachine > const &, void *) _ZNK9jvmaccess17UnoVirtualMachine17getVirtualMachineEv; # jvmaccess::UnoVirtualMachine::getVirtualMachine() const
