From owner-freebsd-office@FreeBSD.ORG Fri May 11 16:28:56 2012 Return-Path: Delivered-To: freebsd-office@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEA72106566C for ; Fri, 11 May 2012 16:28:55 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm14-vm2.bullet.mail.ne1.yahoo.com (nm14-vm2.bullet.mail.ne1.yahoo.com [98.138.91.90]) by mx1.freebsd.org (Postfix) with SMTP id 8F82D8FC18 for ; Fri, 11 May 2012 16:28:55 +0000 (UTC) Received: from [98.138.90.49] by nm14.bullet.mail.ne1.yahoo.com with NNFMP; 11 May 2012 16:22:47 -0000 Received: from [98.138.226.58] by tm2.bullet.mail.ne1.yahoo.com with NNFMP; 11 May 2012 16:22:47 -0000 Received: from [127.0.0.1] by smtp209.mail.ne1.yahoo.com with NNFMP; 11 May 2012 16:22:46 -0000 X-Yahoo-Newman-Id: 986127.97071.bm@smtp209.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: FvbwRBwVM1l6fZPttW_snIqbf266TJFhcStyOutB.TNw9gB 1PTPndr784mEMO2rbtsWdJX9APe7poCGG8s7HstWvcFIXG4PisNf_Yeqz6gx cwyPsWqOB7qnDxJpKYohSPBW8mldLzVpG565Cc7CiBb3JAoyOIGDbU9N8TqW QSbd4qj7b7PSmrELL70fmJrkGAgb_an7ZusQNl0cN2Nf1AsRzMy9Q1hupEbl AgOOCPGSHF8fpGTBGK8k2UQh5WJHuZU21Y3xAvW8WBreQS7iAdmT8poFNKJ0 tx0NgeU18X9RT61IrJvVJWeKbyuM6ebX4pQZcyivQtGyXYy5YWk66K7KPt3B ybxjKzykl47fQytGsz4BfWScCPg_Mftg3lY3Db_0zfjKLf9e9VpzFsw3UAaU hQKx3iqByMcGXcMtlsfbyqwz15.0- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Received: from [192.168.10.103] (pfg@200.118.157.7 with plain) by smtp209.mail.ne1.yahoo.com with SMTP; 11 May 2012 09:22:46 -0700 PDT Message-ID: <4FAD3CD4.50503@FreeBSD.org> Date: Fri, 11 May 2012 11:22:44 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:10.0.3) Gecko/20120328 Thunderbird/10.0.3 MIME-Version: 1.0 To: office-list freebsd Content-Type: multipart/mixed; boundary="------------030407020103070704070907" Cc: Jan Henrik Sylvester , Maho Nakata Subject: Re: editors/openoffice-3 fails on i386 while it builds on amd64 X-BeenThere: freebsd-office@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Office applications on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2012 16:28:56 -0000 This is a multi-part message in MIME format. --------------030407020103070704070907 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hello; The problem seems to be caused by an incomplete update to the bridge code. The attached patch (for the files directory) should fix it. I will go ahead and commit it upstream since it can't be more broken than it currently is but I am not using i386 so some success report would be good :). Pedro. --------------030407020103070704070907 Content-Type: text/plain; name="patch-doublemmap" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-doublemmap" Index: bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx =================================================================== --- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx (revision 1337224) +++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx (working copy) @@ -355,7 +355,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)) { @@ -401,7 +401,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; @@ -434,7 +434,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) { @@ -447,9 +447,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: @@ -457,17 +457,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; --------------030407020103070704070907--