commit libreoffice-ure for openSUSE:Factory
Hello community, here is the log from the commit of package libreoffice-ure for openSUSE:Factory checked in at Fri Jan 7 10:19:06 CET 2011. -------- --- libreoffice-ure/libreoffice-ure.changes 2010-12-01 20:47:31.000000000 +0100 +++ /mounts/work_src_done/STABLE/libreoffice-ure/libreoffice-ure.changes 2010-12-21 19:59:23.000000000 +0100 @@ -1,0 +2,5 @@ +Tue Dec 21 19:44:02 CET 2010 - pmladek@suse.cz + +- updated to libreoffice-3.3.0.2 (3.3-rc2) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- libreoffice-sdk-3.3.0.1.tar.bz2 libreoffice-ure-3.3.0.1.tar.bz2 New: ---- libreoffice-sdk-3.3.0.2.tar.bz2 libreoffice-ure-3.3.0.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libreoffice-ure.spec ++++++ --- /var/tmp/diff_new_pack.ahpfLm/_old 2011-01-07 10:12:55.000000000 +0100 +++ /var/tmp/diff_new_pack.ahpfLm/_new 2011-01-07 10:12:55.000000000 +0100 @@ -1,7 +1,7 @@ # -# spec file for package libreoffice-ure (Version 3.3.0.1) +# spec file for package libreoffice-ure (Version 3.3.0.2) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,11 +19,11 @@ Name: libreoffice-ure -Version: 3.3.0.1 +Version: 3.3.0.2 Release: 1 %define piece ure -%define ooo_build_version 3.3.0.1 -%define ooo_piece_version 3.3.0.1 +%define ooo_build_version 3.3.0.2 +%define ooo_piece_version 3.3.0.2 %define ooo_sourcedirname libreoffice-build-%ooo_build_version %define ooo_prefix %_libdir %define ooo_home libreoffice ++++++ libreoffice-sdk-3.3.0.1.tar.bz2 -> libreoffice-sdk-3.3.0.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-sdk-3.3.0.1/ChangeLog new/libreoffice-sdk-3.3.0.2/ChangeLog --- old/libreoffice-sdk-3.3.0.1/ChangeLog 2010-12-01 16:32:15.000000000 +0100 +++ new/libreoffice-sdk-3.3.0.2/ChangeLog 2010-12-18 20:52:18.000000000 +0100 @@ -1,3 +1,8 @@ +2010-12-18 Petr Mladek <pmladek@suse.cz> [c11761a82ef9426746460f905f38fe23fac500d0] + +Version 3.3.0.2, tag libreoffice-3.3.0.2 (3.3-rc2) + + 2010-12-01 Petr Mladek <pmladek@suse.cz> [0be0562aa6496f0386bdea23b23a9c3a589ef92c] Version 3.3.0.1, tag LIBREOFFICE_3_3_0_1 (3.3-rc1) ++++++ libreoffice-ure-3.3.0.1.tar.bz2 -> libreoffice-ure-3.3.0.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx --- old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx 2010-11-11 20:09:04.000000000 +0100 +++ new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx 2010-12-14 17:02:47.000000000 +0100 @@ -68,7 +68,7 @@ if (pReturnTypeDescr) { - if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) + if (x86::isSimpleReturnType( pReturnTypeDescr )) { pUnoReturn = pReturnValue; // direct way for simple types } @@ -359,15 +359,39 @@ int const codeSnippetSize = 16; +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) +namespace +{ + PrivateSnippetExecutor returnsInRegister(typelib_TypeDescriptionReference * pReturnTypeRef) + { + //These archs apparently are returning small structs in registers, while Linux + //doesn't + PrivateSnippetExecutor exec=NULL; + + typelib_TypeDescription * pReturnTypeDescr = 0; + TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef ); + const bool bSimpleReturnStruct = x86::isSimpleReturnType(pReturnTypeDescr); + const sal_Int32 nRetSize = pReturnTypeDescr->nSize; + TYPELIB_DANGER_RELEASE( pReturnTypeDescr ); + if (bSimpleReturnStruct) + { + exec = privateSnippetExecutorGeneral; // fills eax + if (nRetSize > 4) + exec = privateSnippetExecutorHyper; // fills eax/edx + } + return exec; + } +} +#endif + unsigned char * codeSnippet( unsigned char * code, sal_PtrDiff writetoexecdiff, sal_Int32 functionIndex, sal_Int32 vtableOffset, - typelib_TypeClass returnTypeClass) + typelib_TypeDescriptionReference * pReturnTypeRef) { - if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) { - functionIndex |= 0x80000000; - } PrivateSnippetExecutor exec; - switch (returnTypeClass) { + typelib_TypeClass eReturnClass = pReturnTypeRef ? pReturnTypeRef->eTypeClass : typelib_TypeClass_VOID; + switch (eReturnClass) + { case typelib_TypeClass_VOID: exec = privateSnippetExecutorVoid; break; @@ -381,13 +405,24 @@ case typelib_TypeClass_DOUBLE: exec = privateSnippetExecutorDouble; break; + case typelib_TypeClass_STRUCT: + case typelib_TypeClass_EXCEPTION: +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) + exec = returnsInRegister(pReturnTypeRef); + if (!exec) + { + exec = privateSnippetExecutorClass; + functionIndex |= 0x80000000; + } + break; +#endif case typelib_TypeClass_STRING: case typelib_TypeClass_TYPE: case typelib_TypeClass_ANY: case typelib_TypeClass_SEQUENCE: - case typelib_TypeClass_STRUCT: case typelib_TypeClass_INTERFACE: exec = privateSnippetExecutorClass; + functionIndex |= 0x80000000; break; default: exec = privateSnippetExecutorGeneral; @@ -455,7 +490,7 @@ code = codeSnippet( code, writetoexecdiff, functionOffset++, vtableOffset, reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >( - member)->pAttributeTypeRef->eTypeClass); + member)->pAttributeTypeRef); // Setter: if (!reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >( @@ -464,7 +499,7 @@ (s++)->fn = code + writetoexecdiff; code = codeSnippet( code, writetoexecdiff, functionOffset++, vtableOffset, - typelib_TypeClass_VOID); + NULL); } break; @@ -473,7 +508,7 @@ code = codeSnippet( code, writetoexecdiff, functionOffset++, vtableOffset, reinterpret_cast< typelib_InterfaceMethodTypeDescription * >( - member)->pReturnTypeRef->eTypeClass); + member)->pReturnTypeRef); break; default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx --- old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx 2010-11-11 16:43:29.000000000 +0100 +++ new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx 2010-12-14 17:02:47.000000000 +0100 @@ -88,6 +88,12 @@ //================================================================================================== void fillUnoException( __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); + +} + +namespace x86 +{ + bool isSimpleReturnType(typelib_TypeDescription * pTD, bool recursive = false); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx --- old/libreoffice-ure-3.3.0.1/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx 2010-11-11 16:43:29.000000000 +0100 +++ new/libreoffice-ure-3.3.0.2/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx 2010-12-14 17:02:47.000000000 +0100 @@ -29,7 +29,11 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_bridges.hxx" +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) +#include <stdlib.h> +#else #include <malloc.h> +#endif #include <com/sun/star/uno/genfunc.hxx> #include "com/sun/star/uno/RuntimeException.hpp" @@ -59,7 +63,7 @@ void * pAdjustedThisPtr, sal_Int32 nVtableIndex, void * pRegisterReturn, - typelib_TypeClass eReturnType, + typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn, sal_Int32 * pStackLongs, sal_Int32 nStackLongs ) __attribute__((noinline)); @@ -67,7 +71,7 @@ void * pAdjustedThisPtr, sal_Int32 nVtableIndex, void * pRegisterReturn, - typelib_TypeClass eReturnType, + typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn, sal_Int32 * pStackLongs, sal_Int32 nStackLongs ) { @@ -120,8 +124,10 @@ : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) : "eax", "edx" ); - switch( eReturnType ) + switch( pReturnTypeDescr->eTypeClass ) { + case typelib_TypeClass_VOID: + break; case typelib_TypeClass_HYPER: case typelib_TypeClass_UNSIGNED_HYPER: ((long*)pRegisterReturn)[1] = edx; @@ -146,7 +152,20 @@ asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) ); break; default: + { +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) + sal_Int32 const nRetSize = pReturnTypeDescr->nSize; + if (bSimpleReturn && nRetSize <= 8 && nRetSize > 0) + { + if (nRetSize > 4) + static_cast<long *>(pRegisterReturn)[1] = edx; + static_cast<long *>(pRegisterReturn)[0] = eax; + } +#else + (void)bSimpleReturn; +#endif break; + } } } @@ -169,10 +188,12 @@ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" ); void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion + bool bSimpleReturn = true; if (pReturnTypeDescr) { - if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) + bSimpleReturn = x86::isSimpleReturnType(pReturnTypeDescr); + if (bSimpleReturn) { pCppReturn = pUnoReturn; // direct way for simple types } @@ -269,7 +290,7 @@ OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" ); callVirtualMethod( pAdjustedThisPtr, aVtableSlot.index, - pCppReturn, pReturnTypeDescr->eTypeClass, + pCppReturn, pReturnTypeDescr, bSimpleReturn, (sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) ); // NO exception occured... *ppUnoExc = 0; @@ -328,6 +349,38 @@ } +namespace x86 +{ + bool isSimpleReturnType(typelib_TypeDescription * pTD, bool recursive) + { + if (bridges::cpp_uno::shared::isSimpleType( pTD )) + return true; +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) + // Only structs of exactly 1, 2, 4, or 8 bytes are returned through + // registers, see <http://developer.apple.com/documentation/DeveloperTools/ + // Conceptual/LowLevelABI/Articles/IA32.html>: + if (pTD->eTypeClass == typelib_TypeClass_STRUCT && + (recursive || pTD->nSize <= 2 || pTD->nSize == 4 || pTD->nSize == 8)) + { + typelib_CompoundTypeDescription *const pCompTD = + (typelib_CompoundTypeDescription *) pTD; + for ( sal_Int32 pos = pCompTD->nMembers; pos--; ) { + typelib_TypeDescription * pMemberTD = 0; + TYPELIB_DANGER_GET( &pMemberTD, pCompTD->ppTypeRefs[pos] ); + bool const b = isSimpleReturnType(pMemberTD, true); + TYPELIB_DANGER_RELEASE( pMemberTD ); + if (! b) + return false; + } + return true; + } +#else + (void)recursive; +#endif + return false; + } +} + namespace bridges { namespace cpp_uno { namespace shared { void unoInterfaceProxyDispatch( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-ure-3.3.0.1/ChangeLog new/libreoffice-ure-3.3.0.2/ChangeLog --- old/libreoffice-ure-3.3.0.1/ChangeLog 2010-12-01 16:33:25.000000000 +0100 +++ new/libreoffice-ure-3.3.0.2/ChangeLog 2010-12-18 20:53:22.000000000 +0100 @@ -1,3 +1,24 @@ +2010-12-18 Petr Mladek <pmladek@suse.cz> [b51291955378ddd44382460b4077e426c4f8278e] + +Version 3.3.0.2, tag libreoffice-3.3.0.2 (3.3-rc2) + + +2010-12-13 Robert Nagy <robert@openbsd.org> [886f9a4f76aa6897b8be7486bc3a97a193424ef8] + +malloc.h is obsolete on BSDs, so use stdlib.h there + + +2010-12-13 Caolán McNamara <caolanm@redhat.com> [ad15cb46fb7b58cafb051e068a49ed4f39eb3728] + +fix bsd bridges + +(cherry picked from commit a5ac1c19ca78b6549d2dc7381ddd31ae839288ec) + +2010-12-04 Kalman Szalai - KAMI <kami911@gmail.com> [2e76a820c8d5027d8c4da4c6d9d3d4cf5d13f7e3] + +Fix for build.lst in cli_ure + + 2010-12-01 Petr Mladek <pmladek@suse.cz> [1d474a668f0f07064e7cd02d6f2f975b270b466a] Version 3.3.0.1, tag LIBREOFFICE_3_3_0_1 (3.3-rc1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libreoffice-ure-3.3.0.1/cli_ure/prj/build.lst new/libreoffice-ure-3.3.0.2/cli_ure/prj/build.lst --- old/libreoffice-ure-3.3.0.1/cli_ure/prj/build.lst 2010-11-11 16:43:29.000000000 +0100 +++ new/libreoffice-ure-3.3.0.2/cli_ure/prj/build.lst 2010-12-06 16:19:56.000000000 +0100 @@ -6,8 +6,7 @@ ure cli_ure\source\basetypes nmake - w,vc7 ure_source_basetypes ure_source_version ure_source_source.w ure_inc NULL ure cli_ure\source\climaker nmake - w,vc7 ure_source_climaker ure_source_basetypes.w ure_inc NULL ure cli_ure\unotypes nmake - w,vc7 ure_unotypes ure_source_version ure_source_source.w ure_source_climaker.w ure_inc NULL -ure cli_ure\source\ure nmake - w,vc7 ure_source_ure ure_source_version ure_source_source.w ure_unotypes.w ure_inc NULL +ure cli_ure\source\ure nmake - w,vc7 ure_source_ure ure_source_version ure_source_source.w ure_source_basetypes.w ure_unotypes.w ure_inc NULL ure cli_ure\source\uno_bridge nmake - w,vc7 ure_source_uno_bridge ure_source_basetypes.w ure_unotypes.w ure_source_ure.w ure_inc NULL ure cli_ure\source\native nmake - w,vc7 ure_source_native ure_source_version ure_source_source.w ure_source_ure.w ure_unotypes.w ure_source_uno_bridge.w ure_inc NULL - #ure cli_ure\util nmake - w,vc7 ure_util ure_source_ure.w ure_source_native.w NULL ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de