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 [c11761a82ef9426746460f905f38fe23fac500d0]
+
+Version 3.3.0.2, tag libreoffice-3.3.0.2 (3.3-rc2)
+
+
2010-12-01 Petr Mladek [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
+#else
#include
+#endif
#include
#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(pRegisterReturn)[1] = edx;
+ static_cast(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 [b51291955378ddd44382460b4077e426c4f8278e]
+
+Version 3.3.0.2, tag libreoffice-3.3.0.2 (3.3-rc2)
+
+
+2010-12-13 Robert Nagy [886f9a4f76aa6897b8be7486bc3a97a193424ef8]
+
+malloc.h is obsolete on BSDs, so use stdlib.h there
+
+
+2010-12-13 Caolán McNamara [ad15cb46fb7b58cafb051e068a49ed4f39eb3728]
+
+fix bsd bridges
+
+(cherry picked from commit a5ac1c19ca78b6549d2dc7381ddd31ae839288ec)
+
+2010-12-04 Kalman Szalai - KAMI [2e76a820c8d5027d8c4da4c6d9d3d4cf5d13f7e3]
+
+Fix for build.lst in cli_ure
+
+
2010-12-01 Petr Mladek [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