[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