diff options
author | Maho Nakata <maho@FreeBSD.org> | 2009-06-14 20:36:37 +0000 |
---|---|---|
committer | Maho Nakata <maho@FreeBSD.org> | 2009-06-14 20:36:37 +0000 |
commit | b7419815080245e77e2c73a27f84ef4cfa038194 (patch) | |
tree | ead8cb26e79e4eb15321af191861ae1a4dcbffe4 | |
parent | b8aa0e612143938c3ba7cece545ed299b9404fd2 (diff) | |
download | ports-b7419815080245e77e2c73a27f84ef4cfa038194.tar.gz ports-b7419815080245e77e2c73a27f84ef4cfa038194.zip |
Fix bad transfer url when tries to add extension.
bump port revision
PR: 127946
see also
http://www.openoffice.org/issues/show_bug.cgi?id=98781
http://www.openoffice.org/issues/show_bug.cgi?id=82690
http://www.freebsd.org/cgi/query-pr.cgi?pr=127946
Notes
Notes:
svn path=/head/; revision=235821
-rw-r--r-- | editors/openoffice-3/Makefile | 1 | ||||
-rw-r--r-- | editors/openoffice-3/files/patch-i85126 | 180 | ||||
-rw-r--r-- | editors/openoffice-3/files/patch-i98781 | 116 | ||||
-rw-r--r-- | editors/openoffice.org-3/Makefile | 1 | ||||
-rw-r--r-- | editors/openoffice.org-3/files/patch-i85126 | 180 | ||||
-rw-r--r-- | editors/openoffice.org-3/files/patch-i98781 | 116 |
6 files changed, 482 insertions, 112 deletions
diff --git a/editors/openoffice-3/Makefile b/editors/openoffice-3/Makefile index 5e5249311dcc..49f637f675a7 100644 --- a/editors/openoffice-3/Makefile +++ b/editors/openoffice-3/Makefile @@ -8,6 +8,7 @@ PORTNAME?= openoffice.org PORTVERSION?= ${OOOVERSION} +PORTREVISION= 1 CATEGORIES+= editors java MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \ http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \ diff --git a/editors/openoffice-3/files/patch-i85126 b/editors/openoffice-3/files/patch-i85126 index cc013d213630..15dfa190b164 100644 --- a/editors/openoffice-3/files/patch-i85126 +++ b/editors/openoffice-3/files/patch-i85126 @@ -1,13 +1,20 @@ -Update to newest cpp-uno bridge from Linux x86-64. +catch up to recent bridge also fixes following issues +for amd64 +http://www.openoffice.org/issues/show_bug.cgi?id=98781 +http://www.openoffice.org/issues/show_bug.cgi?id=82690 +http://www.freebsd.org/cgi/query-pr.cgi?pr=127946 -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx,v -retrieving revision 1.3 -diff -u -r1.3 abi.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 16 Sep 2006 15:46:23 -0000 1.3 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 12 Apr 2008 00:10:44 -0000 -@@ -358,6 +358,8 @@ +We also need #define USE_DOUBLE_MMAP for FreeBSD as well. +It's very hard to maintain without it, and performance loss is +negligible. See also +http://www.openoffice.org/issues/show_bug.cgi?id=97320 +. Note that i386 also requires the patch for +"bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx" +. + +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 2009-06-13 15:41:26.000000000 +0900 +@@ -353,6 +353,8 @@ case X86_64_SSEDF_CLASS: *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pSSE++ ); break; @@ -16,14 +23,9 @@ diff -u -r1.3 abi.cxx } } -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx,v -retrieving revision 1.4 -diff -u -r1.4 cpp2uno.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 27 Feb 2008 09:49:58 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 12 Apr 2008 00:10:44 -0000 -@@ -82,8 +82,8 @@ +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 2009-06-13 15:41:26.000000000 +0900 +@@ -77,8 +77,8 @@ void ** gpreg, void ** fpreg, void ** ovrflw, sal_uInt64 * pRegisterReturn /* space for register return */ ) { @@ -34,7 +36,14 @@ diff -u -r1.4 cpp2uno.cxx // return typelib_TypeDescription * pReturnTypeDescr = 0; -@@ -500,7 +500,6 @@ +@@ -489,13 +489,12 @@ + //================================================================================================== + + unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( +- Slot ** slots, unsigned char * code, ++ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, + typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset, + sal_Int32 functionCount, sal_Int32 nVtableOffset ) { (*slots) -= functionCount; Slot * s = *slots; @@ -42,41 +51,36 @@ diff -u -r1.4 cpp2uno.cxx for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos ) { typelib_TypeDescription * pTD = 0; -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx,v -retrieving revision 1.4 -diff -u -r1.4 except.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 5 Jul 2007 09:01:44 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 12 Apr 2008 00:10:44 -0000 -@@ -180,8 +180,8 @@ - else - { - // try to lookup the symbol in the generated rtti map -- t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); -- if (iFind == m_generatedRttis.end()) -+ t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); -+ if (iFind2 == m_generatedRttis.end()) - { - // we must generate it ! - // symbol and rtti-name is nearly identical, -@@ -210,7 +210,7 @@ - } - else // taking already generated rtti - { -- rtti = iFind->second; -+ rtti = iFind2->second; - } - } - } -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx,v -retrieving revision 1.4 -diff -u -r1.4 uno2cpp.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 5 Jul 2007 09:02:53 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 12 Apr 2008 00:10:44 -0000 -@@ -73,13 +73,13 @@ +@@ -509,14 +508,14 @@ + reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD ); + + // get method +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, + x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) ); + + if ( ! pAttrTD->bReadOnly ) + { + // set method +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false ); + } + } +@@ -525,7 +524,7 @@ + typelib_InterfaceMethodTypeDescription *pMethodTD = + reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD ); + +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, + x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) ); + } + +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 2009-06-13 15:41:27.000000000 +0900 +@@ -68,13 +68,13 @@ // Let's figure out what is really going on here { fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR ); @@ -93,7 +97,7 @@ diff -u -r1.4 uno2cpp.cxx fprintf( stderr, "0x%lx, ", pStack[i] ); fprintf( stderr, "\n" ); } -@@ -328,6 +328,8 @@ +@@ -323,6 +323,8 @@ case typelib_TypeClass_DOUBLE: INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack ); break; @@ -102,7 +106,7 @@ diff -u -r1.4 uno2cpp.cxx } // no longer needed -@@ -440,16 +442,19 @@ +@@ -435,16 +437,19 @@ // is my surrogate bridges::cpp_uno::shared::UnoInterfaceProxy * pThis = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI); @@ -123,7 +127,7 @@ diff -u -r1.4 uno2cpp.cxx VtableSlot aVtableSlot( getVtableSlot( reinterpret_cast< -@@ -494,10 +499,11 @@ +@@ -489,10 +494,11 @@ } case typelib_TypeClass_INTERFACE_METHOD: { @@ -136,3 +140,67 @@ diff -u -r1.4 uno2cpp.cxx VtableSlot aVtableSlot( getVtableSlot( reinterpret_cast< +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 2009-06-13 15:42:43.000000000 +0900 +@@ -32,10 +32,10 @@ + #include "precompiled_bridges.hxx" + + #include <stdio.h> ++#include <string.h> + #include <dlfcn.h> + #include <cxxabi.h> + #include <hash_map> +-#include <sys/param.h> + + #include <rtl/strbuf.hxx> + #include <rtl/ustrbuf.hxx> +@@ -121,7 +121,7 @@ + }; + //__________________________________________________________________________________________________ + RTTI::RTTI() SAL_THROW( () ) +-#if __FreeBSD_version < 602103 ++#ifdef FREEBSD /* #i22253# */ + : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) ) + #else + : m_hApp( dlopen( 0, RTLD_LAZY ) ) +@@ -160,7 +160,7 @@ + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); +-#if __FreeBSD_version < 602103 /* #i22253# */ ++#ifdef FREEBSD /* #i22253# */ + rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); + #else + rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); +@@ -175,8 +175,8 @@ + else + { + // try to lookup the symbol in the generated rtti map +- t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); +- if (iFind == m_generatedRttis.end()) ++ t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); ++ if (iFind2 == m_generatedRttis.end()) + { + // we must generate it ! + // symbol and rtti-name is nearly identical, +@@ -205,7 +205,7 @@ + } + else // taking already generated rtti + { +- rtti = iFind->second; ++ rtti = iFind2->second; + } + } + } + +--- bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx~ 2009-06-13 16:41:45.000000000 +0900 ++++ bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx 2009-06-13 16:42:24.000000000 +0900 +@@ -40,7 +40,7 @@ + #include <hash_map> + + /*See: http://people.redhat.com/drepper/selinux-mem.html*/ +-#ifdef LINUX ++#if defined (LINUX) || defined (FREEBSD) + #define USE_DOUBLE_MMAP + #endif + diff --git a/editors/openoffice-3/files/patch-i98781 b/editors/openoffice-3/files/patch-i98781 new file mode 100644 index 000000000000..a1a6c99298e5 --- /dev/null +++ b/editors/openoffice-3/files/patch-i98781 @@ -0,0 +1,116 @@ +catch up to recent bridge also fixes following issues +for i386 +http://www.openoffice.org/issues/show_bug.cgi?id=98781 +http://www.openoffice.org/issues/show_bug.cgi?id=82690 +http://www.freebsd.org/cgi/query-pr.cgi?pr=127946 + +We also need +#define USE_DOUBLE_MMAP for FreeBSD as well. The patch was included +in files/patches-i85126 + +--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx 2009-06-13 14:17:39.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx 2009-06-13 15:11:21.000000000 +0900 +@@ -362,7 +362,7 @@ + int const codeSnippetSize = 16; + + unsigned char * codeSnippet( +- unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset, ++ unsigned char * code, sal_PtrDiff writetoexecdiff, sal_Int32 functionIndex, sal_Int32 vtableOffset, + typelib_TypeClass returnTypeClass) + { + if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) { +@@ -408,7 +408,7 @@ + // jmp privateSnippetExecutor: + *p++ = 0xE9; + *reinterpret_cast< sal_Int32 * >(p) +- = ((unsigned char *) exec) - p - sizeof (sal_Int32); ++ = ((unsigned char *) exec) - p - sizeof (sal_Int32) - writetoexecdiff; + p += sizeof (sal_Int32); + OSL_ASSERT(p - code <= codeSnippetSize); + return code + codeSnippetSize; +@@ -419,8 +419,7 @@ + struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; }; + + bridges::cpp_uno::shared::VtableFactory::Slot * +-bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) +-{ ++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) { + return static_cast< Slot * >(block) + 2; + } + +@@ -441,7 +440,7 @@ + } + + unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( +- Slot ** slots, unsigned char * code, ++ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, + typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset, + sal_Int32 functionCount, sal_Int32 vtableOffset) + { +@@ -454,9 +453,9 @@ + switch (member->eTypeClass) { + case typelib_TypeClass_INTERFACE_ATTRIBUTE: + // Getter: +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >( + member)->pAttributeTypeRef->eTypeClass); + // Setter: +@@ -464,17 +463,17 @@ + typelib_InterfaceAttributeTypeDescription * >( + member)->bReadOnly) + { +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + typelib_TypeClass_VOID); + } + break; + + case typelib_TypeClass_INTERFACE_METHOD: +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + reinterpret_cast< typelib_InterfaceMethodTypeDescription * >( + member)->pReturnTypeRef->eTypeClass); + break; + +--- bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx 2009-06-13 14:17:39.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx 2009-06-13 15:14:24.000000000 +0900 +@@ -32,10 +32,10 @@ + #include "precompiled_bridges.hxx" + + #include <stdio.h> ++#include <string.h> + #include <dlfcn.h> + #include <cxxabi.h> + #include <hash_map> +-#include <sys/param.h> + + #include <rtl/strbuf.hxx> + #include <rtl/ustrbuf.hxx> +@@ -121,7 +121,7 @@ + }; + //__________________________________________________________________________________________________ + RTTI::RTTI() SAL_THROW( () ) +-#if __FreeBSD_version < 602103 ++#ifdef FREEBSD /* #i22253# */ + : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) ) + #else + : m_hApp( dlopen( 0, RTLD_LAZY ) ) +@@ -160,7 +160,7 @@ + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); +-#if __FreeBSD_version < 602103 /* #i22253# */ ++#ifdef FREEBSD /* #i22253# */ + rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); + #else + rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); diff --git a/editors/openoffice.org-3/Makefile b/editors/openoffice.org-3/Makefile index 5e5249311dcc..49f637f675a7 100644 --- a/editors/openoffice.org-3/Makefile +++ b/editors/openoffice.org-3/Makefile @@ -8,6 +8,7 @@ PORTNAME?= openoffice.org PORTVERSION?= ${OOOVERSION} +PORTREVISION= 1 CATEGORIES+= editors java MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \ http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \ diff --git a/editors/openoffice.org-3/files/patch-i85126 b/editors/openoffice.org-3/files/patch-i85126 index cc013d213630..15dfa190b164 100644 --- a/editors/openoffice.org-3/files/patch-i85126 +++ b/editors/openoffice.org-3/files/patch-i85126 @@ -1,13 +1,20 @@ -Update to newest cpp-uno bridge from Linux x86-64. +catch up to recent bridge also fixes following issues +for amd64 +http://www.openoffice.org/issues/show_bug.cgi?id=98781 +http://www.openoffice.org/issues/show_bug.cgi?id=82690 +http://www.freebsd.org/cgi/query-pr.cgi?pr=127946 -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx,v -retrieving revision 1.3 -diff -u -r1.3 abi.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 16 Sep 2006 15:46:23 -0000 1.3 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 12 Apr 2008 00:10:44 -0000 -@@ -358,6 +358,8 @@ +We also need #define USE_DOUBLE_MMAP for FreeBSD as well. +It's very hard to maintain without it, and performance loss is +negligible. See also +http://www.openoffice.org/issues/show_bug.cgi?id=97320 +. Note that i386 also requires the patch for +"bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx" +. + +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx 2009-06-13 15:41:26.000000000 +0900 +@@ -353,6 +353,8 @@ case X86_64_SSEDF_CLASS: *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pSSE++ ); break; @@ -16,14 +23,9 @@ diff -u -r1.3 abi.cxx } } -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx,v -retrieving revision 1.4 -diff -u -r1.4 cpp2uno.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 27 Feb 2008 09:49:58 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 12 Apr 2008 00:10:44 -0000 -@@ -82,8 +82,8 @@ +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx 2009-06-13 15:41:26.000000000 +0900 +@@ -77,8 +77,8 @@ void ** gpreg, void ** fpreg, void ** ovrflw, sal_uInt64 * pRegisterReturn /* space for register return */ ) { @@ -34,7 +36,14 @@ diff -u -r1.4 cpp2uno.cxx // return typelib_TypeDescription * pReturnTypeDescr = 0; -@@ -500,7 +500,6 @@ +@@ -489,13 +489,12 @@ + //================================================================================================== + + unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( +- Slot ** slots, unsigned char * code, ++ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, + typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset, + sal_Int32 functionCount, sal_Int32 nVtableOffset ) { (*slots) -= functionCount; Slot * s = *slots; @@ -42,41 +51,36 @@ diff -u -r1.4 cpp2uno.cxx for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos ) { typelib_TypeDescription * pTD = 0; -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx,v -retrieving revision 1.4 -diff -u -r1.4 except.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 5 Jul 2007 09:01:44 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 12 Apr 2008 00:10:44 -0000 -@@ -180,8 +180,8 @@ - else - { - // try to lookup the symbol in the generated rtti map -- t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); -- if (iFind == m_generatedRttis.end()) -+ t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); -+ if (iFind2 == m_generatedRttis.end()) - { - // we must generate it ! - // symbol and rtti-name is nearly identical, -@@ -210,7 +210,7 @@ - } - else // taking already generated rtti - { -- rtti = iFind->second; -+ rtti = iFind2->second; - } - } - } -Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx -=================================================================== -RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx,v -retrieving revision 1.4 -diff -u -r1.4 uno2cpp.cxx ---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 5 Jul 2007 09:02:53 -0000 1.4 -+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 12 Apr 2008 00:10:44 -0000 -@@ -73,13 +73,13 @@ +@@ -509,14 +508,14 @@ + reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD ); + + // get method +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, + x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) ); + + if ( ! pAttrTD->bReadOnly ) + { + // set method +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false ); + } + } +@@ -525,7 +524,7 @@ + typelib_InterfaceMethodTypeDescription *pMethodTD = + reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD ); + +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( code, nFunctionOffset++, nVtableOffset, + x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) ); + } + +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx 2009-06-13 15:41:27.000000000 +0900 +@@ -68,13 +68,13 @@ // Let's figure out what is really going on here { fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR ); @@ -93,7 +97,7 @@ diff -u -r1.4 uno2cpp.cxx fprintf( stderr, "0x%lx, ", pStack[i] ); fprintf( stderr, "\n" ); } -@@ -328,6 +328,8 @@ +@@ -323,6 +323,8 @@ case typelib_TypeClass_DOUBLE: INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack ); break; @@ -102,7 +106,7 @@ diff -u -r1.4 uno2cpp.cxx } // no longer needed -@@ -440,16 +442,19 @@ +@@ -435,16 +437,19 @@ // is my surrogate bridges::cpp_uno::shared::UnoInterfaceProxy * pThis = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI); @@ -123,7 +127,7 @@ diff -u -r1.4 uno2cpp.cxx VtableSlot aVtableSlot( getVtableSlot( reinterpret_cast< -@@ -494,10 +499,11 @@ +@@ -489,10 +494,11 @@ } case typelib_TypeClass_INTERFACE_METHOD: { @@ -136,3 +140,67 @@ diff -u -r1.4 uno2cpp.cxx VtableSlot aVtableSlot( getVtableSlot( reinterpret_cast< +--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 2009-06-13 15:39:58.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx 2009-06-13 15:42:43.000000000 +0900 +@@ -32,10 +32,10 @@ + #include "precompiled_bridges.hxx" + + #include <stdio.h> ++#include <string.h> + #include <dlfcn.h> + #include <cxxabi.h> + #include <hash_map> +-#include <sys/param.h> + + #include <rtl/strbuf.hxx> + #include <rtl/ustrbuf.hxx> +@@ -121,7 +121,7 @@ + }; + //__________________________________________________________________________________________________ + RTTI::RTTI() SAL_THROW( () ) +-#if __FreeBSD_version < 602103 ++#ifdef FREEBSD /* #i22253# */ + : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) ) + #else + : m_hApp( dlopen( 0, RTLD_LAZY ) ) +@@ -160,7 +160,7 @@ + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); +-#if __FreeBSD_version < 602103 /* #i22253# */ ++#ifdef FREEBSD /* #i22253# */ + rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); + #else + rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); +@@ -175,8 +175,8 @@ + else + { + // try to lookup the symbol in the generated rtti map +- t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); +- if (iFind == m_generatedRttis.end()) ++ t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); ++ if (iFind2 == m_generatedRttis.end()) + { + // we must generate it ! + // symbol and rtti-name is nearly identical, +@@ -205,7 +205,7 @@ + } + else // taking already generated rtti + { +- rtti = iFind->second; ++ rtti = iFind2->second; + } + } + } + +--- bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx~ 2009-06-13 16:41:45.000000000 +0900 ++++ bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx 2009-06-13 16:42:24.000000000 +0900 +@@ -40,7 +40,7 @@ + #include <hash_map> + + /*See: http://people.redhat.com/drepper/selinux-mem.html*/ +-#ifdef LINUX ++#if defined (LINUX) || defined (FREEBSD) + #define USE_DOUBLE_MMAP + #endif + diff --git a/editors/openoffice.org-3/files/patch-i98781 b/editors/openoffice.org-3/files/patch-i98781 new file mode 100644 index 000000000000..a1a6c99298e5 --- /dev/null +++ b/editors/openoffice.org-3/files/patch-i98781 @@ -0,0 +1,116 @@ +catch up to recent bridge also fixes following issues +for i386 +http://www.openoffice.org/issues/show_bug.cgi?id=98781 +http://www.openoffice.org/issues/show_bug.cgi?id=82690 +http://www.freebsd.org/cgi/query-pr.cgi?pr=127946 + +We also need +#define USE_DOUBLE_MMAP for FreeBSD as well. The patch was included +in files/patches-i85126 + +--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx 2009-06-13 14:17:39.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx 2009-06-13 15:11:21.000000000 +0900 +@@ -362,7 +362,7 @@ + int const codeSnippetSize = 16; + + unsigned char * codeSnippet( +- unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset, ++ unsigned char * code, sal_PtrDiff writetoexecdiff, sal_Int32 functionIndex, sal_Int32 vtableOffset, + typelib_TypeClass returnTypeClass) + { + if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) { +@@ -408,7 +408,7 @@ + // jmp privateSnippetExecutor: + *p++ = 0xE9; + *reinterpret_cast< sal_Int32 * >(p) +- = ((unsigned char *) exec) - p - sizeof (sal_Int32); ++ = ((unsigned char *) exec) - p - sizeof (sal_Int32) - writetoexecdiff; + p += sizeof (sal_Int32); + OSL_ASSERT(p - code <= codeSnippetSize); + return code + codeSnippetSize; +@@ -419,8 +419,7 @@ + struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; }; + + bridges::cpp_uno::shared::VtableFactory::Slot * +-bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) +-{ ++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) { + return static_cast< Slot * >(block) + 2; + } + +@@ -441,7 +440,7 @@ + } + + unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( +- Slot ** slots, unsigned char * code, ++ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, + typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset, + sal_Int32 functionCount, sal_Int32 vtableOffset) + { +@@ -454,9 +453,9 @@ + switch (member->eTypeClass) { + case typelib_TypeClass_INTERFACE_ATTRIBUTE: + // Getter: +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >( + member)->pAttributeTypeRef->eTypeClass); + // Setter: +@@ -464,17 +463,17 @@ + typelib_InterfaceAttributeTypeDescription * >( + member)->bReadOnly) + { +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + typelib_TypeClass_VOID); + } + break; + + case typelib_TypeClass_INTERFACE_METHOD: +- (s++)->fn = code; ++ (s++)->fn = code + writetoexecdiff; + code = codeSnippet( +- code, functionOffset++, vtableOffset, ++ code, writetoexecdiff, functionOffset++, vtableOffset, + reinterpret_cast< typelib_InterfaceMethodTypeDescription * >( + member)->pReturnTypeRef->eTypeClass); + break; + +--- bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx 2009-06-13 14:17:39.000000000 +0900 ++++ bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx 2009-06-13 15:14:24.000000000 +0900 +@@ -32,10 +32,10 @@ + #include "precompiled_bridges.hxx" + + #include <stdio.h> ++#include <string.h> + #include <dlfcn.h> + #include <cxxabi.h> + #include <hash_map> +-#include <sys/param.h> + + #include <rtl/strbuf.hxx> + #include <rtl/ustrbuf.hxx> +@@ -121,7 +121,7 @@ + }; + //__________________________________________________________________________________________________ + RTTI::RTTI() SAL_THROW( () ) +-#if __FreeBSD_version < 602103 ++#ifdef FREEBSD /* #i22253# */ + : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) ) + #else + : m_hApp( dlopen( 0, RTLD_LAZY ) ) +@@ -160,7 +160,7 @@ + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); +-#if __FreeBSD_version < 602103 /* #i22253# */ ++#ifdef FREEBSD /* #i22253# */ + rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); + #else + rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); |