Author: pfg Date: Thu Sep 24 19:36:21 2015 New Revision: 1705124 URL: http://svn.apache.org/viewvc?rev=1705124&view=rev Log: i126553- Basic merges to clean up the FreeBSD port.
Bring major updates from trunk for the FreeBSD build. This mainly targets the FreeBSD port that uses external libraries. The buildbot, using internal components, requires more changes but I am not planning to bring them to this branch. r1591501, r1602791: Fix for the i386 platform. r1669457, r1669459: Make FreeBSD bridges code buildable with clang. r1669462, r1669465, r1694132: Fixes for recent gcc and clang. Modified: openoffice/branches/AOO410/ (props changed) openoffice/branches/AOO410/main/ (props changed) openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx openoffice/branches/AOO410/main/configure.in openoffice/branches/AOO410/main/graphite/makefile.mk openoffice/branches/AOO410/main/sal/inc/rtl/string.hxx openoffice/branches/AOO410/main/set_soenv.in openoffice/branches/AOO410/main/shell/source/unix/sysshell/recently_used_file_handler.cxx openoffice/branches/AOO410/main/solenv/gbuild/platform/freebsd.mk openoffice/branches/AOO410/main/solenv/inc/tg_compv.mk openoffice/branches/AOO410/main/solenv/inc/unx.mk openoffice/branches/AOO410/main/solenv/inc/unxfbsd.mk openoffice/branches/AOO410/main/testtools/source/bridgetest/bridgetest.cxx openoffice/branches/AOO410/main/testtools/source/bridgetest/makefile.mk Propchange: openoffice/branches/AOO410/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 24 19:36:21 2015 @@ -2,4 +2,4 @@ /openoffice/branches/ia2:1417739-1541842 /openoffice/branches/ooxml-osba:1546391,1546395,1546574,1546934,1547030,1547392,1551920,1551954,1551958,1552283 /openoffice/branches/rejuvenate01:1480411,1534063,1534098,1536312,1549902,1560617 -/openoffice/trunk:1571617,1571619,1571677,1572577,1572587,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602823,1602850,1603416,1603897,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1607111,1607793,1607836,1608348,1608359,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611549,1612539,1612801,1621121,1623847,1623849-1623850,1642300-1642302,1702894,1702898,1702986,1702988 +/openoffice/trunk:1571617,1571619,1571677,1572577,1572587,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1607111,1607793,1607836,1608348,1608359,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611549,1612539,1612801,1621121,1623847,1623849-1623850,1642300-1642302,1669457,1669459,1669462-1669463,1669465,1694132,1702894,1702898,1702986,1702988 Propchange: openoffice/branches/AOO410/main/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 24 19:36:21 2015 @@ -2,4 +2,4 @@ /openoffice/branches/ia2/main:1417739-1541842 /openoffice/branches/ooxml-osba/main:1546391,1546395,1546574,1546934,1547030,1547392,1551920,1551954,1551958,1552283 /openoffice/branches/rejuvenate01/main:1480411,1534063,1534098,1536312,1549902,1560617 -/openoffice/trunk/main:1571617,1571677,1572569,1572577,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1621121,1623847,1623849-1623850,1642300-1642302,1677190,1687177,1692551,1700135,1702894,1702898,1702986,1702988 +/openoffice/trunk/main:1571617,1571677,1572569,1572577,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1621121,1623847,1623849-1623850,1642300-1642302,1669457,1669459,1669462-1669463,1669465,1677190,1687177,1692551,1694132,1700135,1702894,1702898,1702986,1702988 Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx Thu Sep 24 19:36:21 2015 @@ -24,6 +24,11 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" +#include <typeinfo> +#include <exception> +#include <cstddef> +#include <cxxabi.h> + #include <com/sun/star/uno/genfunc.hxx> #include "com/sun/star/uno/RuntimeException.hpp" #include <uno/data.h> Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx Thu Sep 24 19:36:21 2015 @@ -24,7 +24,12 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" +#include <cstddef> +#include <exception> +#include <typeinfo> + #include <stdio.h> +#include <string.h> #include <dlfcn.h> #include <cxxabi.h> #include <hash_map> @@ -177,7 +182,12 @@ type_info * RTTI::getRTTI( typelib_Compo char const * rttiName = symName.getStr() +4; #if OSL_DEBUG_LEVEL > 1 fprintf( stderr,"generated rtti for %s\n", rttiName ); +#ifndef __GLIBCXX__ /* #i124421# */ + const OString aCUnoName = OUStringToOString( unoName, RTL_TEXTENCODING_UTF8); + OSL_TRACE( "TypeInfo for \"%s\" not found and cannot be generated.\n", aCUnoName.getStr()); +#endif /* __GLIBCXX__ */ #endif +#ifdef __GLIBCXX__ /* #i124421# */ if (pTypeDescr->pBaseTypeDescription) { // ensure availability of base @@ -191,6 +201,9 @@ type_info * RTTI::getRTTI( typelib_Compo // this class has no base class rtti = new __class_type_info( strdup( rttiName ) ); } +#else /* __GLIBCXX__ */ + rtti = NULL; +#endif /* __GLIBCXX__ */ pair< t_rtti_map::iterator, bool > insertion( m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) ); Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk Thu Sep 24 19:36:21 2015 @@ -34,7 +34,7 @@ ENABLE_EXCEPTIONS=TRUE # --- Files -------------------------------------------------------- -.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDIgcc3" +.IF "$(OS)$(CPU)$(COMNAME)" == "FREEBSDIgcc3" .IF "$(cppu_no_leak)" == "" CFLAGS += -DLEAK_STATIC_DATA Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx Thu Sep 24 19:36:21 2015 @@ -23,10 +23,6 @@ #include "uno/mapping.h" -#include <typeinfo> -#include <exception> -#include <cstddef> - namespace CPPU_CURRENT_NAMESPACE { @@ -34,6 +30,7 @@ void dummy_can_throw_anything( char cons // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h +#ifdef __GLIBCXX__ struct _Unwind_Exception { unsigned exception_class __attribute__((__mode__(__DI__))); @@ -62,18 +59,21 @@ struct __cxa_exception _Unwind_Exception unwindHeader; }; +#endif /* __GLIBCXX__ */ extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) throw(); extern "C" void __cxa_throw ( void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); +#ifdef __GLIBCXX__ struct __cxa_eh_globals { __cxa_exception *caughtExceptions; unsigned int uncaughtExceptions; }; extern "C" __cxa_eh_globals *__cxa_get_globals () throw(); +#endif /* __GLIBCXX__ */ // ----- @@ -81,6 +81,10 @@ extern "C" __cxa_eh_globals *__cxa_get_g void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); //================================================================================================== +#ifndef __GLIBCXX__ +using __cxxabiv1:: __cxa_exception; +#endif /* __GLIBCXX__ */ + void fillUnoException( __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); } Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx Thu Sep 24 19:36:21 2015 @@ -24,6 +24,10 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" +#include <typeinfo> +#include <exception> +#include <cstddef> +#include <cxxabi.h> #include <stdlib.h> #include <com/sun/star/uno/genfunc.hxx> @@ -39,6 +43,11 @@ using namespace ::rtl; using namespace ::com::sun::star::uno; +#ifdef __GLIBCXX__ +using CPPU_CURRENT_NAMESPACE::__cxa_get_globals; +#else +using __cxxabiv1::__cxa_get_globals; +#endif namespace { @@ -305,7 +314,7 @@ static void cpp_call( catch (...) { // fill uno exception - fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() ); + CPPU_CURRENT_NAMESPACE::fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() ); // temporary params for ( ; nTempIndizes--; ) Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx Thu Sep 24 19:36:21 2015 @@ -24,9 +24,10 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" -#include <stdio.h> -#include <stdlib.h> -#include <hash_map> +#include <typeinfo> +#include <exception> +#include <cstddef> +#include <cxxabi.h> #include <rtl/alloc.h> #include <osl/mutex.hxx> Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx Thu Sep 24 19:36:21 2015 @@ -24,9 +24,9 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" -#if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) +#include <cstddef> #include <exception> -#endif +#include <typeinfo> #include <stdio.h> #include <string.h> @@ -182,7 +182,12 @@ type_info * RTTI::getRTTI( typelib_Compo char const * rttiName = symName.getStr() +4; #if OSL_DEBUG_LEVEL > 1 fprintf( stderr,"generated rtti for %s\n", rttiName ); +#ifndef __GLIBCXX__ /* #i124421# */ + const OString aCUnoName = OUStringToOString( unoName, RTL_TEXTENCODING_UTF8); + OSL_TRACE( "TypeInfo for \"%s\" not found and cannot be generated.\n", aCUnoName.getStr()); +#endif /* __GLIBCXX__ */ #endif +#ifdef __GLIBCXX__ /* #i124421# */ if (pTypeDescr->pBaseTypeDescription) { // ensure availability of base @@ -196,7 +201,10 @@ type_info * RTTI::getRTTI( typelib_Compo // this class has no base class rtti = new __class_type_info( strdup( rttiName ) ); } - +#else /* __GLIBCXX__ */ + rtti = NULL; +#endif /* __GLIBCXX__ */ + 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?!" ); Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Thu Sep 24 19:36:21 2015 @@ -34,7 +34,7 @@ ENABLE_EXCEPTIONS=TRUE # --- Files -------------------------------------------------------- -.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDXgcc3" +.IF "$(OS)$(CPU)$(COMNAME)" == "FREEBSDXgcc3" .IF "$(cppu_no_leak)" == "" CFLAGS += -DLEAK_STATIC_DATA Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx Thu Sep 24 19:36:21 2015 @@ -23,10 +23,6 @@ #include "uno/mapping.h" -#include <typeinfo> -#include <exception> -#include <cstddef> - namespace CPPU_CURRENT_NAMESPACE { @@ -34,6 +30,7 @@ void dummy_can_throw_anything( char cons // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h +#ifdef __GLIBCXX__ struct _Unwind_Exception { unsigned exception_class __attribute__((__mode__(__DI__))); @@ -62,18 +59,21 @@ struct __cxa_exception _Unwind_Exception unwindHeader; }; +#endif /* __GLIBCXX__ */ extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) throw(); extern "C" void __cxa_throw ( void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); +#ifdef __GLIBCXX__ struct __cxa_eh_globals { __cxa_exception *caughtExceptions; unsigned int uncaughtExceptions; }; extern "C" __cxa_eh_globals *__cxa_get_globals () throw(); +#endif /* __GLIBCXX__ */ // ----- @@ -81,6 +81,10 @@ extern "C" __cxa_eh_globals *__cxa_get_g void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); //================================================================================================== +#ifndef __GLIBCXX__ +using __cxxabiv1:: __cxa_exception; +#endif /* __GLIBCXX__ */ + void fillUnoException( __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); } Modified: openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx (original) +++ openoffice/branches/AOO410/main/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Thu Sep 24 19:36:21 2015 @@ -24,9 +24,10 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" -#include <exception> #include <typeinfo> -#include <stdio.h> +#include <exception> +#include <cstddef> +#include <cxxabi.h> #include <stdlib.h> #include <string.h> @@ -47,6 +48,11 @@ using namespace ::rtl; using namespace ::com::sun::star::uno; +#ifdef __GLIBCXX__ +using CPPU_CURRENT_NAMESPACE::__cxa_get_globals; +#else +using __cxxabiv1::__cxa_get_globals; +#endif //================================================================================================== static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex, @@ -446,7 +452,7 @@ static void cpp_call( catch (...) { // fill uno exception - fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() ); + CPPU_CURRENT_NAMESPACE::fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() ); // temporary params for ( ; nTempIndizes--; ) Modified: openoffice/branches/AOO410/main/configure.in URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/configure.in?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/configure.in (original) +++ openoffice/branches/AOO410/main/configure.in Thu Sep 24 19:36:21 2015 @@ -1679,6 +1679,23 @@ if test "$_os" != "WINNT" -o "$WITH_MING AC_PROG_CC fi +if test "$_os" = "FreeBSD"; then + FBSD_GCC_RPATH= + if $CC --version 2>&1 | grep clang > /dev/null ; then + COM_IS=CLANG + else + COM_IS=GCC + rpath=`$CC --print-file-name libstdc++.so` + rpath=`realpath $rpath` + rpath=`dirname $rpath` + if test "$rpath" != "/usr/lib" ; then + FBSD_GCC_RPATH="-Wl,-rpath=$rpath" + fi + fi + AC_SUBST(COM_IS) + AC_SUBST(FBSD_GCC_RPATH) +fi + COMPATH=`dirname "$CC"` if test "$COMPATH" = "." ; then AC_PATH_PROGS(COMPATH, $CC) @@ -6817,6 +6834,18 @@ dnl ==================================== SYSTEM_GETTEXT=YES AC_SUBST(SYSTEM_GETTEXT) +if test "$_os" = "FreeBSD"; then + LIBINTL_PREFIX= + for dir in $CPPFLAGS; do + if dir=`expr -- $dir : '-I\(.*\)'`; then + if test -f "$dir/libintl.h" ; then + LIBINTL_PREFIX=`dirname $dir` + fi + fi + done + AC_SUBST(LIBINTL_PREFIX) +fi + dnl =================================================================== dnl always rely on the system version of pango dnl =================================================================== Modified: openoffice/branches/AOO410/main/graphite/makefile.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/graphite/makefile.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/graphite/makefile.mk (original) +++ openoffice/branches/AOO410/main/graphite/makefile.mk Thu Sep 24 19:36:21 2015 @@ -92,7 +92,7 @@ CFLAGS4MSC= $(CFLAGS2MSC:s/ -/ $(JUSTASL BUILD_FLAGS+= "CFLAGS4MSC=$(CFLAGS4MSC)" /F makefile.vc$(VCNUM) lib_dll .ENDIF -.IF "$(COM)"=="GCC" +.IF "$(COM)"=="GCC" || "$(OS)"=="FREEBSD" # Does linux want --disable-shared? .IF "x$(debug)"!="x" @@ -137,7 +137,7 @@ OUT2LIB=engine$/release$/*.lib OUT2LIB=engine$/src$/.libs$/libgraphite*.a .ENDIF -.IF "$(COM)"=="GCC" +.IF "$(COM)"=="GCC" || "$(OS)"=="FREEBSD" BUILD_ACTION=$(GNUMAKE) -j$(EXTMAXPROCESS) .ENDIF Modified: openoffice/branches/AOO410/main/sal/inc/rtl/string.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/sal/inc/rtl/string.hxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/sal/inc/rtl/string.hxx (original) +++ openoffice/branches/AOO410/main/sal/inc/rtl/string.hxx Thu Sep 24 19:36:21 2015 @@ -234,8 +234,9 @@ private: @return a pointer to a (not necessarily null-terminated) byte string representing the characters of this string object. */ - operator const sal_Char *() const SAL_THROW(()) { return pData->buffer; } + public: + operator const sal_Char *() const SAL_THROW(()) { return pData->buffer; } /** Returns a reference to a character of this string. */ sal_Char& operator[]( int n ) { return pData->buffer[n]; } /** Returns a const reference to a character of this string. */ Modified: openoffice/branches/AOO410/main/set_soenv.in URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/set_soenv.in?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/set_soenv.in (original) +++ openoffice/branches/AOO410/main/set_soenv.in Thu Sep 24 19:36:21 2015 @@ -358,8 +358,8 @@ elsif ( $platform =~ m/kfreebsd/ ) } elsif ( $platform =~ m/freebsd/ ) { $BIG_SVX = "TRUE"; - $COM = "GCC"; - $COMPATH = '@COMPATH@'; + $COM = "@COM_IS@"; + $COMPATH = '@COMPATH@' . '/bin'; $CVER = "C300"; $GUI = "UNX"; $GUIBASE = "unx"; @@ -1680,6 +1680,11 @@ if ( $platform =~ m/darwin/ ) ToFile( "MACOSX_DEPLOYMENT_TARGET", "@MACOSX_DEPLOYMENT_TARGET@", "e" ); ToFile( "MACOSX_SDK_PATH", "@MACOSX_SDK_PATH@", "e" ); } +if ( $platform =~ m/freebsd/ ) +{ + ToFile( "FBSD_GCC_RPATH", "@FBSD_GCC_RPATH@", "e" ); + ToFile( "LIBINTL_PREFIX", "@LIBINTL_PREFIX@", "e" ); +} # # Writing the variables to file. @@ -2575,26 +2580,37 @@ sub GetCorrectPath my @originalPairs = @_; my @pairs = @originalPairs; my @Path = split /$ps/, $oldPath; + my @buildPath; + my @sysPath; + my $elem; + + for $elem (@Path) { + if ($elem eq '.' || $elem =~ m'^$SOLARENV/' || + $elem =~ m'/solenv/') { + push @buildPath, $elem; + } else { + push @sysPath, $elem; + } + } while (@pairs) { my $path = shift @pairs; my $cmd = shift @pairs; my $to_append = 1; - my $elem; if (! -x "$path/$cmd") { AddWarning ("Missing executable $path/$cmd\n"); } - for $elem (@Path) { + for $elem (@sysPath) { if ($elem eq $path) { # print "Hit duplicate path in path; break\n"; $to_append = 0; last; } - if (-f "$elem/$cmd") { + if (-f "$elem/$cmd" && ! -l "$elem/$cmd") { # print "Element already in path ...\n"; - unshift @Path, $path; + unshift @sysPath, $path; $to_append = 0; last; } else { @@ -2602,7 +2618,7 @@ sub GetCorrectPath } } if ($to_append) { - push @Path, $path; + push @sysPath, $path; } } @@ -2612,14 +2628,14 @@ sub GetCorrectPath my $cmd = shift @pairs; my $realpath; - $realpath = PathLookup ($cmd, @Path); + $realpath = PathLookup ($cmd, @sysPath); if (!($realpath eq $path)) { AddWarning ("Path conflict for executables " . "$path/$cmd against $realpath"); } } - return join $ps, CleanupPath (@Path); + return join $ps, @buildPath, CleanupPath (@sysPath); } #------------------------------------------------------------ Modified: openoffice/branches/AOO410/main/shell/source/unix/sysshell/recently_used_file_handler.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/shell/source/unix/sysshell/recently_used_file_handler.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/shell/source/unix/sysshell/recently_used_file_handler.cxx (original) +++ openoffice/branches/AOO410/main/shell/source/unix/sysshell/recently_used_file_handler.cxx Thu Sep 24 19:36:21 2015 @@ -40,6 +40,7 @@ #include <algorithm> #include <functional> #include <string.h> +#include <time.h> namespace /* private */ { //######################################## Modified: openoffice/branches/AOO410/main/solenv/gbuild/platform/freebsd.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/solenv/gbuild/platform/freebsd.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/solenv/gbuild/platform/freebsd.mk (original) +++ openoffice/branches/AOO410/main/solenv/gbuild/platform/freebsd.mk Thu Sep 24 19:36:21 2015 @@ -20,7 +20,6 @@ #************************************************************************* GUI := UNX -COM := GCC # BSD mktemp -t expects a prefix, not a pattern gb_MKTEMP ?= /usr/bin/mktemp -t gbuild. @@ -95,7 +94,12 @@ gb_CXXFLAGS := \ -fno-use-cxa-atexit \ -fvisibility-inlines-hidden \ -fvisibility=hidden \ - -pipe \ + -pipe +ifeq ($(COM),CLANG) +gb_CXXFLAGS += -DHAVE_STL_INCLUDE_PATH +else +gb_CXXFLAGS += -DBOOST_TR1_DISABLE_INCLUDE_NEXT -DBOOST_TR1_GCC_INCLUDE_PATH=c++ +endif ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) gb_CFLAGS_WERROR := -Werror @@ -109,8 +113,10 @@ gb_LinkTarget_LDFLAGS := -Wl,--sysroot=$ endif gb_LinkTarget_EXCEPTIONFLAGS := \ -DEXCEPTIONS_ON \ - -fexceptions \ - -fno-enforce-eh-specs \ + -fexceptions +ifeq ($(COM),GCC) +gb_LinkTarget_EXCEPTIONFLAGS += -fno-enforce-eh-specs +endif gb_LinkTarget_NOEXCEPTIONFLAGS := \ -DEXCEPTIONS_OFF \ @@ -121,6 +127,7 @@ gb_LinkTarget_LDFLAGS += \ -Wl,-z,combreloc \ -Wl,-z,defs \ $(subst -L../lib , ,$(SOLARLIB)) \ + ${FBSD_GCC_RPATH} \ \ ifeq ($(HAVE_LD_HASH_STYLE),TRUE) Modified: openoffice/branches/AOO410/main/solenv/inc/tg_compv.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/solenv/inc/tg_compv.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/solenv/inc/tg_compv.mk (original) +++ openoffice/branches/AOO410/main/solenv/inc/tg_compv.mk Thu Sep 24 19:36:21 2015 @@ -130,9 +130,14 @@ COMNAME=MipsPro .ENDIF .IF "$(COM)"=="CLANG" +.IF "$(OS)" == "FREEBSD" +COMID=gcc3 +COMNAME=gcc3 +.ELSE COMID=s5abi COMNAME=s5abi .ENDIF +.ENDIF .IF "$(COMNAME)"=="" Modified: openoffice/branches/AOO410/main/solenv/inc/unx.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/solenv/inc/unx.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/solenv/inc/unx.mk (original) +++ openoffice/branches/AOO410/main/solenv/inc/unx.mk Thu Sep 24 19:36:21 2015 @@ -139,7 +139,7 @@ .INCLUDE : unxbsds.mk .ENDIF -.IF "$(COM)$(OS)" == "GCCFREEBSD" +.IF "$(OS)" == "FREEBSD" .INCLUDE : unxfbsd.mk .ENDIF Modified: openoffice/branches/AOO410/main/solenv/inc/unxfbsd.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/solenv/inc/unxfbsd.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/solenv/inc/unxfbsd.mk (original) +++ openoffice/branches/AOO410/main/solenv/inc/unxfbsd.mk Thu Sep 24 19:36:21 2015 @@ -27,7 +27,7 @@ ASM= AFLAGS= SOLAR_JAVA*= -PICSWITCH*:=-fpic +PICSWITCH*:=-fPIC JAVAFLAGSDEBUG=-g # Include arch specific makefile. @@ -44,6 +44,11 @@ JAVAFLAGSDEBUG=-g # _PTHREADS is needed for the stl CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 +.IF "$(COM)"=="CLANG" +CDEFS+=-DHAVE_STL_INCLUDE_PATH +.ELSE +CDEFS+=-DBOOST_TR1_DISABLE_INCLUDE_NEXT -DBOOST_TR1_GCC_INCLUDE_PATH=c++ +.ENDIF # enable visibility define in "sal/types.h" .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" @@ -82,7 +87,11 @@ CFLAGSENABLESYMBOLS=-g # was temporarily # flags for the C++ Compiler CFLAGSCC= -pipe $(ARCH_FLAGS) # Flags for enabling exception handling +.IF "$(COM)"=="CLANG" +CFLAGSEXCEPTIONS=-fexceptions +.ELSE CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +.ENDIF # Flags for disabling exception handling CFLAGS_NO_EXCEPTIONS=-fno-exceptions @@ -150,7 +159,7 @@ LINKFLAGSRUNPATH_OXT= LINKFLAGSRUNPATH_BOXT=-Wl,-z,origin -Wl,-rpath,\''$$ORIGIN'\' #LINKFLAGSRUNPATH_BOXT=-Wl,-z,origin -Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= -LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) +LINKFLAGS=-Wl,-z,combreloc $(LDFLAGS) $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) # linker flags for linking applications LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \ @@ -193,11 +202,11 @@ STDSHLCUIMT+=-ltcmalloc .ENDIF # libraries for linking applications -STDLIBGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed -STDLIBCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDLIBGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_GCC_RPATH} +STDLIBCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_GCC_RPATH} # libraries for linking shared libraries -STDSHLGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed -STDSHLCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDSHLGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_GCC_RPATH} +STDSHLCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_GCC_RPATH} X11LINK_DYNAMIC = -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed Modified: openoffice/branches/AOO410/main/testtools/source/bridgetest/bridgetest.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/testtools/source/bridgetest/bridgetest.cxx?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/testtools/source/bridgetest/bridgetest.cxx (original) +++ openoffice/branches/AOO410/main/testtools/source/bridgetest/bridgetest.cxx Thu Sep 24 19:36:21 2015 @@ -544,7 +544,12 @@ static sal_Bool performTest( } catch (...) { bRet &= check(false, "getRaiseAttr2 threw wrong type"); } -#ifndef OS2 // see i120310 for details +#if !defined(OS2) && !(defined(FREEBSD) && defined(INTEL)) +// see i120310 for OS2 details +// FreeBSD i386 coredumps on this test in cpp_vtable_call(): +// pTypeDescr appears to point to garbage, pMapFunctionIndexToMemberIndex +// points to unreadable memory, as does abase.pTypeName. Refcounts +// don't look reasonable, etc. // Test instantiated polymorphic struct types: { bRet &= check( Modified: openoffice/branches/AOO410/main/testtools/source/bridgetest/makefile.mk URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/testtools/source/bridgetest/makefile.mk?rev=1705124&r1=1705123&r2=1705124&view=diff ============================================================================== --- openoffice/branches/AOO410/main/testtools/source/bridgetest/makefile.mk (original) +++ openoffice/branches/AOO410/main/testtools/source/bridgetest/makefile.mk Thu Sep 24 19:36:21 2015 @@ -134,8 +134,8 @@ ALLTAR: \ runtest : $(DLLDEST)$/uno_types.rdb $(DLLDEST)$/uno_services.rdb makefile.mk \ $(SHL1TARGETN) $(SHL2TARGETN) $(SHL3TARGETN) -.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" || "$(COM)$(OS)$(CPU)" == "GCCFREEBSDI" || "$(OS)$(CPU)"=="SOLARISS" - @echo "Mac OSX PPC GCC ad FreeBDS/i386 fails this test! likely broken UNO bridge. Fix me." +.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" || "$(OS)$(CPU)"=="SOLARISS" + @echo "Mac OSX PPC GCC and Solaris fails this test! likely broken UNO bridge. Fix me." .ELSE cd $(DLLDEST) && $(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/uno \ -ro uno_services.rdb -ro uno_types.rdb \