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


Reply via email to