[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - bridges/prj bridges/source desktop/source solenv/gbuild solenv/inc

Herbert Dürr hdu at apache.org
Tue Dec 10 12:08:22 PST 2013


 bridges/prj/d.lst                                      |    2 
 bridges/source/cpp_uno/cxx_macosx_x86-64/abi.cxx       |  792 -----------------
 bridges/source/cpp_uno/cxx_macosx_x86-64/abi.hxx       |   63 -
 bridges/source/cpp_uno/cxx_macosx_x86-64/cpp2uno.cxx   |  570 ------------
 bridges/source/cpp_uno/cxx_macosx_x86-64/except.cxx    |  339 -------
 bridges/source/cpp_uno/cxx_macosx_x86-64/makefile.mk   |   72 -
 bridges/source/cpp_uno/cxx_macosx_x86-64/share.hxx     |   95 --
 bridges/source/cpp_uno/cxx_macosx_x86-64/uno2cpp.cxx   |  605 ------------
 bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.cxx     |  792 +++++++++++++++++
 bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.hxx     |   63 +
 bridges/source/cpp_uno/s5abi_macosx_x86-64/cpp2uno.cxx |  570 ++++++++++++
 bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx  |  335 +++++++
 bridges/source/cpp_uno/s5abi_macosx_x86-64/makefile.mk |   72 +
 bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx   |  116 ++
 bridges/source/cpp_uno/s5abi_macosx_x86-64/uno2cpp.cxx |  605 ++++++++++++
 desktop/source/deployment/misc/dp_platform.cxx         |    3 
 solenv/gbuild/platform/macosx.mk                       |    2 
 solenv/inc/tg_compv.mk                                 |    5 
 18 files changed, 2564 insertions(+), 2537 deletions(-)

New commits:
commit 7b394585e5b7d57ca6d431fbe553069ab8730f99
Author: Herbert Dürr <hdu at apache.org>
Date:   Tue Dec 10 19:18:49 2013 +0000

    #i122195# provide proper type_info for UNO exceptions on OSX 64bit
    
    on OSX 64bit the class_type_info classes are specified
    in http://refspecs.linuxbase.org/cxxabi-1.86.html#rtti but
    these details are not generally available in a public header
    of most development environments. So we define them locally.

diff --git a/bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
index 15e205c..3ffaa4b 100644
--- a/bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
@@ -177,7 +177,6 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
 #if OSL_DEBUG_LEVEL > 1
                 fprintf( stderr,"generated rtti for %s\n", rttiName );
 #endif
-#if 0 // TODO: the derived type_info classes are not directly available => get them indirectly?
                 if (pTypeDescr->pBaseTypeDescription)
                 {
                     // ensure availability of base
@@ -195,9 +194,6 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
                 pair< t_rtti_map::iterator, bool > insertion(
                     m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
                 OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
-#else
-        return NULL;
-#endif
             }
             else // taking already generated rtti
             {
diff --git a/bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx
index 0140bb9..bcda4d6 100644
--- a/bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx
+++ b/bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx
@@ -85,6 +85,27 @@ extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
 
 // -----
 
+// on OSX 64bit the class_type_info classes are specified
+// in http://refspecs.linuxbase.org/cxxabi-1.86.html#rtti but
+// these details are not generally available in a public header
+// of most development environments. So we define them here.
+class __class_type_info : public std::type_info
+{
+public:
+        explicit __class_type_info( const char* pRttiName)
+        : std::type_info( pRttiName)
+        {}
+};
+
+class __si_class_type_info : public __class_type_info
+{
+        const __class_type_info* mpBaseType;
+public:
+        explicit __si_class_type_info( const char* pRttiName, __class_type_info* pBaseType)
+        : __class_type_info( pRttiName), mpBaseType( pBaseType)
+        {}
+};
+
 //==================================================================================================
 void raiseException(
     uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
commit 9ce94a804b97cddfbe596f5b7b8973f4ecc5fc86
Author: Herbert Dürr <hdu at apache.org>
Date:   Tue Dec 10 18:40:19 2013 +0000

    #122195# change cppu env, comid from generic cxx to s5abi (System 5 AMD64 ABI)
    
    Patch by: Juergen Schmidt <jsc at apache.org>
    
    Merged from r1534063 in the rejuvenate01 branch

diff --git a/bridges/prj/d.lst b/bridges/prj/d.lst
index f5f55be..d8fae67 100644
--- a/bridges/prj/d.lst
+++ b/bridges/prj/d.lst
@@ -6,6 +6,6 @@
 ..\%__SRC%\bin\gcc3_uno.dll %_DEST%\bin%_EXT%\gcc3_uno.dll
 ..\%__SRC%\lib\libgcc2_uno.* %_DEST%\lib%_EXT%\libgcc2_uno.*
 ..\%__SRC%\lib\libgcc3_uno.* %_DEST%\lib%_EXT%\libgcc3_uno.*
-..\%__SRC%\lib\libcxx_uno.* %_DEST%\lib%_EXT%\libcxx_uno.*
+..\%__SRC%\lib\libs5abi_uno.* %_DEST%\lib%_EXT%\libs5abi_uno.*
 ..\%__SRC%\bin\gcc3_uno.* %_DEST%\bin%_EXT%\gcc3_uno.*
 ..\%__SRC%\lib\libsunpro5_uno.* %_DEST%\lib%_EXT%\libsunpro5_uno.*
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/abi.cxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.cxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/abi.cxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.cxx
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/abi.hxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.hxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/abi.hxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/abi.hxx
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/cpp2uno.cxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/cpp2uno.cxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/cpp2uno.cxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/cpp2uno.cxx
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/except.cxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/except.cxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/makefile.mk b/bridges/source/cpp_uno/s5abi_macosx_x86-64/makefile.mk
similarity index 98%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/makefile.mk
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/makefile.mk
index de33fac..b0e96ac 100644
--- a/bridges/source/cpp_uno/cxx_macosx_x86-64/makefile.mk
+++ b/bridges/source/cpp_uno/s5abi_macosx_x86-64/makefile.mk
@@ -24,7 +24,7 @@
 PRJ=..$/..$/..
 
 PRJNAME=bridges
-TARGET=cxx_uno
+TARGET=$(COMNAME)_uno
 LIBTARGET=no
 ENABLE_EXCEPTIONS=TRUE
 
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/share.hxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/share.hxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/share.hxx
diff --git a/bridges/source/cpp_uno/cxx_macosx_x86-64/uno2cpp.cxx b/bridges/source/cpp_uno/s5abi_macosx_x86-64/uno2cpp.cxx
similarity index 100%
rename from bridges/source/cpp_uno/cxx_macosx_x86-64/uno2cpp.cxx
rename to bridges/source/cpp_uno/s5abi_macosx_x86-64/uno2cpp.cxx
diff --git a/desktop/source/deployment/misc/dp_platform.cxx b/desktop/source/deployment/misc/dp_platform.cxx
index ef5a5c2..ea07d41 100644
--- a/desktop/source/deployment/misc/dp_platform.cxx
+++ b/desktop/source/deployment/misc/dp_platform.cxx
@@ -59,6 +59,7 @@
 #define PLATFORM_FREEBSD_X86        "freebsd_x86"
 #define PLATFORM_FREEBSD_X86_64     "freebsd_x86_64"
 #define PLATFORM_MACOSX_X86         "macosx_x86"
+#define PLATFORM_MACOSX_X86_64      "macosx_x86_64"
 #define PLATFORM_MACOSX_PPC         "macosx_powerpc"
 #define PLATFORM_OS2_X86            "os2_x86"
 
@@ -169,6 +170,8 @@ namespace
             ret = checkOSandCPU(OUSTR("FreeBSD"), OUSTR("X86_64"));
         else if (token.equals(OUSTR(PLATFORM_MACOSX_X86)))
             ret = checkOSandCPU(OUSTR("MacOSX"), OUSTR("x86"));
+        else if (token.equals(OUSTR(PLATFORM_MACOSX_X86_64)))
+            ret = checkOSandCPU(OUSTR("MacOSX"), OUSTR("x86_64"));
         else if (token.equals(OUSTR(PLATFORM_MACOSX_PPC)))
             ret = checkOSandCPU(OUSTR("MacOSX"), OUSTR("PowerPC"));
         else if (token.equals(OUSTR(PLATFORM_OS2_X86)))
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index a0ab8ce..43e5b7e2 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -23,6 +23,8 @@
 
 GUI := UNX
 COM := GCC
+#COM := S5ABI
+#COMID := s5abi
 
 # Darwin mktemp -t expects a prefix, not a pattern
 gb_MKTEMP ?= /usr/bin/mktemp -t gbuild.
diff --git a/solenv/inc/tg_compv.mk b/solenv/inc/tg_compv.mk
index 1b2db94..f8d7969 100644
--- a/solenv/inc/tg_compv.mk
+++ b/solenv/inc/tg_compv.mk
@@ -129,6 +129,11 @@ COMID=C730
 COMNAME=MipsPro
 .ENDIF
 
+.IF "$(COM)"=="CLANG"
+COMID=s5abi
+COMNAME=s5abi
+.ENDIF
+
 .IF "$(COMNAME)"==""
 
 # "EXCEPTIONSFILES" get compiled before this, but shouldn't


More information about the Libreoffice-commits mailing list