[SCM] LibreOffice packaging repository branch, debian-experimental-3.5, updated. libreoffice_3.5.2-4-1-gfd1dfb2
The following commit has been merged in the debian-experimental-3.5 branch:
commit fd1dfb22ba58ecfdccf76aeb4138f5365ddf033a
Author: Rene Engelhard <rene@debian.org>
Date: Mon Apr 16 22:28:52 2012 +0200
update to 3.5.3 rc1
diff --git a/changelog b/changelog
index 20ffe3c..e70bcc6 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+libreoffice (1:3.5.3~rc1-1) UNRELEASED; urgency=low
+
+ * new upstream release candidate
+
+ -- Rene Engelhard <rene@debian.org> Mon, 16 Apr 2012 09:59:51 +0200
+
libreoffice (1:3.5.2-4) unstable; urgency=medium
* debian/patches/icu-4.9.diff: backport fix from libreoffice-3-5
diff --git a/patches/add-debian-multiarch-support.diff b/patches/add-debian-multiarch-support.diff
deleted file mode 100644
index 6ae30b6..0000000
--- a/patches/add-debian-multiarch-support.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/configure.in b/configure.in
-index 290b294..f3ca081 100644
---- a/configure.in
-+++ b/configure.in
-@@ -7748,6 +7748,7 @@ dnl ===================================================================
-
- KDE4_CFLAGS=""
- KDE4_LIBS=""
-+QMAKE4="qmake"
- MOC4="moc"
- KDE_GLIB_CFLAGS=""
- KDE_GLIB_LIBS=""
-@@ -7817,6 +7818,18 @@ if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then
- AC_MSG_ERROR([Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
- fi
-
-+ dnl Check for qmake
-+ AC_PATH_PROG( QMAKEQT4, qmake-qt4, no, [`dirname $qt_lib_dir`/bin:$QT4DIR/bin:$PATH] )
-+ QMAKE4="$QMAKEQT4"
-+ if test "$QMAKE4" = "no" ; then
-+ AC_PATH_PROG( QMAKE4, qmake, no, [`dirname $qt_lib_dir`/bin:$QT4DIR/bin:$PATH] )
-+ if test "$QMAKE4" = "no" ; then
-+ AC_MSG_ERROR([Qmake not found. Please specify
-+the root of your Qt installation by exporting QT4DIR before running "configure".])
-+ fi
-+ fi
-+
-+ qt_libdirs="`$QMAKE4 -query QT_INSTALL_LIBS` $qt_libdirs"
- AC_MSG_CHECKING([for Qt4 libraries])
- qt_lib_dir="no"
- for lib_dir in $qt_libdirs ; do
diff --git a/patches/armhf-bridges-doubles.diff b/patches/armhf-bridges-doubles.diff
deleted file mode 100644
index f29c468..0000000
--- a/patches/armhf-bridges-doubles.diff
+++ /dev/null
@@ -1,135 +0,0 @@
-From e13dc26e394ede799a60691638971cf1d9689f74 Mon Sep 17 00:00:00 2001
-From: Jani Monoses <jani@ubuntu.com>
-Date: Mon, 20 Feb 2012 23:15:02 +0000
-Subject: ARM bridge: fixes for passing double arguments on the stack
-
----
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-index 07bdea1..9750b6a 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-@@ -70,6 +70,7 @@ namespace
- char * pCppStack = pTopStack;
-
- #ifdef __ARM_PCS_VFP
-+ int dc = 0;
- char * pFloatArgs = (char *)(pCppStack - 64);
- #endif
- // return
-@@ -152,6 +153,11 @@ namespace
- if ((pFloatArgs - pTopStack) % 8) pFloatArgs+=sizeof(float); //align to 8
- pCppArgs[nPos] = pUnoArgs[nPos] = pFloatArgs;
- pFloatArgs += sizeof(double);
-+ if (++dc == arm::MAX_FPR_REGS) {
-+ if (pCppStack - pTopStack < 16)
-+ pCppStack = pTopStack + 16;
-+ pFloatArgs = pCppStack;
-+ }
- } else
- #endif
- pCppArgs[nPos] = pUnoArgs[nPos] = pCppStack;
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-index 8e69ebee..98b29ba 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-@@ -362,7 +362,8 @@ void callVirtualMethod(
- { \
- ++pDS; \
- } \
-- *pDS++ = *reinterpret_cast<double *>( pSV );\
-+ *(double *)pDS = *reinterpret_cast<double *>( pSV );\
-+ pDS += 2;\
- }
- #else
- #define INSERT_FLOAT( pSV, nr, pFPR, pDS ) \
---
-cgit v0.9.0.2-2-gbebe
-
-From 99bf0c318b89c7d6acee364161b34b13d348a3bb Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Fri, 17 Feb 2012 09:03:36 +0000
-Subject: add a uno test api with more than 8 floating point args
-
-I'm a cruel person, i.e. this targets the TODO of
-dab11f7fe2a2fa4155e4c4feaa5fc54e57cfbd37 in
-bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cx
----
-diff --git a/testtools/com/sun/star/comp/bridge/TestComponent.java b/testtools/com/sun/star/comp/bridge/TestComponent.java
-index c63ff7f..757139a 100644
---- a/testtools/com/sun/star/comp/bridge/TestComponent.java
-+++ b/testtools/com/sun/star/comp/bridge/TestComponent.java
-@@ -511,6 +511,10 @@ public class TestComponent {
- return i2;
- }
-
-+ public double testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 ) {
-+ return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10;
-+ }
-+
- // Attributes
- public boolean getBool() throws com.sun.star.uno.RuntimeException {
- return _bool;
-diff --git a/testtools/source/bridgetest/bridgetest.cxx b/testtools/source/bridgetest/bridgetest.cxx
-index 968c5f1..5e611da 100644
---- a/testtools/source/bridgetest/bridgetest.cxx
-+++ b/testtools/source/bridgetest/bridgetest.cxx
-@@ -541,6 +541,11 @@ static sal_Bool performTest(
- sal_Int32 i2 = xLBT->testPPCAlignment(0, 0, 0, 0, 0xBEAF);
- bRet &= check(i2 == 0xBEAF, "ppc-style alignment test");
- }
-+ {
-+ double d1 = xLBT->testTenDoubles(0.1, 0.2, 0.3, 0.4, 0.5,
-+ 0.6, 0.7, 0.8, 0.9, 1.0);
-+ bRet &= check(d1 == 5.5, "armhf doubles test");
-+ }
- // Test extended attributes that raise exceptions:
- try {
- xLBT->getRaiseAttr1();
-diff --git a/testtools/source/bridgetest/cli/cli_cs_testobj.cs b/testtools/source/bridgetest/cli/cli_cs_testobj.cs
-index 246d3e1..f89241b 100644
---- a/testtools/source/bridgetest/cli/cli_cs_testobj.cs
-+++ b/testtools/source/bridgetest/cli/cli_cs_testobj.cs
-@@ -264,6 +264,11 @@ public class BridgeTestObject : WeakBase, XRecursiveCall, XBridgeTest2
- return i2;
- }
-
-+ double testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 )
-+ {
-+ return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10;
-+ }
-+
- // Attributes
- public bool Bool
- {
-diff --git a/testtools/source/bridgetest/cppobj.cxx b/testtools/source/bridgetest/cppobj.cxx
-index 0df13f5..def69d9 100644
---- a/testtools/source/bridgetest/cppobj.cxx
-+++ b/testtools/source/bridgetest/cppobj.cxx
-@@ -230,7 +230,8 @@ public:
- { return rStruct; }
- virtual sal_Int32 SAL_CALL testPPCAlignment( sal_Int64, sal_Int64, sal_Int32, sal_Int64, sal_Int32 i2 ) throw(com::sun::star::uno::RuntimeException)
- { return i2; }
--
-+ virtual double SAL_CALL testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 ) throw(com::sun::star::uno::RuntimeException)
-+ { return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10; }
- virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Bool; }
- virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
-diff --git a/testtools/source/bridgetest/idl/bridgetest.idl b/testtools/source/bridgetest/idl/bridgetest.idl
-index 82db320..1e6f6aa 100644
---- a/testtools/source/bridgetest/idl/bridgetest.idl
-+++ b/testtools/source/bridgetest/idl/bridgetest.idl
-@@ -314,6 +314,11 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface
- */
- long testPPCAlignment( [in] hyper l1, [in] hyper l2, [in] long i1, [in] hyper l3, [in] long i2 );
-
-+ /**
-+ * VFP ABI (armhf) doubles test
-+ */
-+ double testTenDoubles( [in] double d1, [in] double d2, [in] double d3, [in] double d4, [in] double d5, [in] double d6, [in] double d7, [in] double d8, [in] double d9, [in] double d10 );
-+
- [attribute] boolean Bool;
- [attribute] byte Byte;
- [attribute] char Char;
---
-cgit v0.9.0.2-2-gbebe
diff --git a/patches/armhf-bridges-fix-armv4t-armel.diff b/patches/armhf-bridges-fix-armv4t-armel.diff
deleted file mode 100644
index 646d759..0000000
--- a/patches/armhf-bridges-fix-armv4t-armel.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-index 97eff51..b430d4f 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-@@ -279,7 +279,11 @@ void callVirtualMethod(
- #endif
- //Make the call
- "ldr r5, %[pmethod]\n\t"
-+#ifndef __ARM_ARCH_4T__
- "blx r5\n\t"
-+#else
-+ "mov lr, pc ; bx r5\n\t"
-+#endif
-
- //Fill in return values
- "mov %[r0], r0\n\t"
diff --git a/patches/armhf-bridges.diff b/patches/armhf-bridges.diff
deleted file mode 100644
index 6007ecc..0000000
--- a/patches/armhf-bridges.diff
+++ /dev/null
@@ -1,463 +0,0 @@
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
-index d5faf15..27148dc 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
-@@ -10,6 +10,17 @@
- # define UNWIND @
- #endif
-
-+@ If the VFP ABI variant (armhf in Debian/Ubuntu) is used, an additional extra 64 bytes
-+@ are taken up on the stack (the equivalent of the 8 double precision VFP registers)
-+
-+#ifdef __ARM_PCS_VFP
-+# define PAD 80
-+# define DISCARDED 84
-+#else
-+# define PAD 16
-+# define DISCARDED 20
-+#endif
-+
- .file "armhelper.s"
- .text
- .align 4
-@@ -19,9 +30,12 @@ privateSnippetExecutor:
- UNWIND .fnstart @ start of unwinder entry
-
- stmfd sp!, {r0-r3} @ follow other parameters on stack
-- UNWIND .pad #16 @ throw this data away on exception
- mov r0, ip @ r0 points to functionoffset/vtable
- mov r1, sp @ r1 points to this and params
-+#ifdef __ARM_PCS_VFP
-+ vpush {d0-d7} @ floating point parameter on stack
-+#endif
-+ UNWIND .pad #PAD @ throw this data away on exception
- @ (see cppuno.cxx:codeSnippet())
- stmfd sp!, {r4,lr} @ save return address
- @ (r4 pushed to preserve stack alignment)
-@@ -30,7 +44,7 @@ privateSnippetExecutor:
- bl cpp_vtable_call(PLT)
-
- add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
-- ldr pc, [sp], #20 @ return, discarding function arguments
-+ ldr pc, [sp], #DISCARDED @ return, discarding function arguments
-
- UNWIND .fnend @ end of unwinder entry
-
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-index d347aa0..07bdea1 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
-@@ -69,6 +69,9 @@ namespace
- char * pTopStack = (char *)(pCallStack + 0);
- char * pCppStack = pTopStack;
-
-+#ifdef __ARM_PCS_VFP
-+ char * pFloatArgs = (char *)(pCppStack - 64);
-+#endif
- // return
- typelib_TypeDescription * pReturnTypeDescr = 0;
- if (pReturnTypeRef)
-@@ -125,7 +128,9 @@ namespace
- {
- case typelib_TypeClass_HYPER:
- case typelib_TypeClass_UNSIGNED_HYPER:
-+#ifndef __ARM_PCS_VFP
- case typelib_TypeClass_DOUBLE:
-+#endif
- if ((pCppStack - pTopStack) % 8) pCppStack+=sizeof(sal_Int32); //align to 8
- break;
- default:
-@@ -133,13 +138,31 @@ namespace
- }
- #endif
-
-- pCppArgs[nPos] = pCppStack;
-- pUnoArgs[nPos] = pCppStack;
-+// For armhf we get the floating point arguments from a different area of the stack
-+// TODO: deal with functions with more than 8 floating point args that need to overflow
-+// to the stack. Find such an UNO API to try on.
-+#ifdef __ARM_PCS_VFP
-+ if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT)
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = pFloatArgs;
-+ pFloatArgs += sizeof(float);
-+ } else
-+ if (pParamTypeDescr->eTypeClass == typelib_TypeClass_DOUBLE)
-+ {
-+ if ((pFloatArgs - pTopStack) % 8) pFloatArgs+=sizeof(float); //align to 8
-+ pCppArgs[nPos] = pUnoArgs[nPos] = pFloatArgs;
-+ pFloatArgs += sizeof(double);
-+ } else
-+#endif
-+ pCppArgs[nPos] = pUnoArgs[nPos] = pCppStack;
-+
- switch (pParamTypeDescr->eTypeClass)
- {
- case typelib_TypeClass_HYPER:
- case typelib_TypeClass_UNSIGNED_HYPER:
-+#ifndef __ARM_PCS_VFP
- case typelib_TypeClass_DOUBLE:
-+#endif
- pCppStack += sizeof(sal_Int32); // extra long
- break;
- default:
-@@ -179,6 +202,13 @@ namespace
- TYPELIB_DANGER_RELEASE( pParamTypeDescr );
- }
- }
-+#ifdef __ARM_PCS_VFP
-+ // use the stack for output parameters or non floating point values
-+ if (rParam.bOut ||
-+ ((pParamTypeDescr->eTypeClass != typelib_TypeClass_DOUBLE)
-+ && (pParamTypeDescr->eTypeClass != typelib_TypeClass_FLOAT))
-+ )
-+#endif
- pCppStack += sizeof(sal_Int32); // standard parameter length
- }
-
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
-index f7a85ba..da36c75 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
-@@ -93,7 +93,7 @@ namespace CPPU_CURRENT_NAMESPACE
-
- namespace arm
- {
-- enum armlimits { MAX_GPR_REGS = 4 };
-+ enum armlimits { MAX_GPR_REGS = 4, MAX_FPR_REGS = 8 };
- bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef );
- }
-
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-index 9502b87..86a33d5 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-@@ -131,6 +131,20 @@ namespace arm
- return false;
- }
-
-+#ifdef __ARM_PCS_VFP
-+ bool is_float_only_struct(const typelib_TypeDescription * type)
-+ {
-+ const typelib_CompoundTypeDescription * p
-+ = reinterpret_cast< const typelib_CompoundTypeDescription * >(type);
-+ for (sal_Int32 i = 0; i < p->nMembers; ++i)
-+ {
-+ if (p->ppTypeRefs[i]->eTypeClass != typelib_TypeClass_FLOAT &&
-+ p->ppTypeRefs[i]->eTypeClass != typelib_TypeClass_DOUBLE)
-+ return false;
-+ }
-+ return true;
-+ }
-+#endif
- bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef )
- {
- if (bridges::cpp_uno::shared::isSimpleType(pTypeRef))
-@@ -143,6 +157,13 @@ namespace arm
- //A Composite Type not larger than 4 bytes is returned in r0
- bool bRet = pTypeDescr->nSize > 4 || is_complex_struct(pTypeDescr);
-
-+#ifdef __ARM_PCS_VFP
-+ // In the VFP ABI, structs with only float/double values that fit in
-+ // 16 bytes are returned in registers
-+ if( pTypeDescr->nSize <= 16 && is_float_only_struct(pTypeDescr))
-+ bRet = false;
-+#endif
-+
- TYPELIB_DANGER_RELEASE( pTypeDescr );
- return bRet;
- }
-@@ -152,11 +173,6 @@ namespace arm
-
- void MapReturn(sal_uInt32 r0, sal_uInt32 r1, typelib_TypeDescriptionReference * pReturnType, sal_uInt32* pRegisterReturn)
- {
--#if !defined(__ARM_EABI__) && !defined(__SOFTFP__)
-- register float fret asm("f0");
-- register double dret asm("f0");
--#endif
--
- switch( pReturnType->eTypeClass )
- {
- case typelib_TypeClass_HYPER:
-@@ -176,6 +192,7 @@ void MapReturn(sal_uInt32 r0, sal_uInt32 r1, typelib_TypeDescriptionReference *
- #if !defined(__ARM_PCS_VFP) && (defined(__ARM_EABI__) || defined(__SOFTFP__))
- pRegisterReturn[0] = r0;
- #else
-+ register float fret asm("s0");
- *(float*)pRegisterReturn = fret;
- #endif
- break;
-@@ -184,6 +201,7 @@ void MapReturn(sal_uInt32 r0, sal_uInt32 r1, typelib_TypeDescriptionReference *
- pRegisterReturn[1] = r1;
- pRegisterReturn[0] = r0;
- #else
-+ register double dret asm("d0");
- *(double*)pRegisterReturn = dret;
- #endif
- break;
-@@ -211,7 +229,9 @@ void callVirtualMethod(
- sal_uInt32 *pStack,
- sal_uInt32 nStack,
- sal_uInt32 *pGPR,
-- sal_uInt32 nGPR) __attribute__((noinline));
-+ sal_uInt32 nGPR,
-+ double *pFPR,
-+ sal_uInt32 nFPR) __attribute__((noinline));
-
- void callVirtualMethod(
- void * pThis,
-@@ -221,7 +241,9 @@ void callVirtualMethod(
- sal_uInt32 *pStack,
- sal_uInt32 nStack,
- sal_uInt32 *pGPR,
-- sal_uInt32 nGPR)
-+ sal_uInt32 nGPR,
-+ double *pFPR,
-+ sal_uInt32 nFPR)
- {
- // never called
- if (! pThis)
-@@ -238,39 +260,50 @@ void callVirtualMethod(
- // Should not happen, but...
- if ( nGPR > arm::MAX_GPR_REGS )
- nGPR = arm::MAX_GPR_REGS;
-+ if ( nFPR > arm::MAX_FPR_REGS )
-+ nFPR = arm::MAX_FPR_REGS;
-
- sal_uInt32 pMethod = *((sal_uInt32*)pThis);
- pMethod += 4 * nVtableIndex;
- pMethod = *((sal_uInt32 *)pMethod);
-
-- typedef void (*FunctionCall )( sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32);
-- FunctionCall pFunc = (FunctionCall)pMethod;
--
-- (*pFunc)(pGPR[0], pGPR[1], pGPR[2], pGPR[3]);
--
-+ //Return registers
- sal_uInt32 r0;
- sal_uInt32 r1;
-
-- // get return value
- __asm__ __volatile__ (
-- "mov %0, r0\n\t"
-- "mov %1, r1\n\t"
-- : "=r" (r0), "=r" (r1) : );
-+ //Fill in general purpose register arguments
-+ "ldr r4, %[pgpr]\n\t"
-+ "ldmia r4, {r0-r3}\n\t"
-+
-+#ifdef __ARM_PCS_VFP
-+ //Fill in VFP register arguments as double precision values
-+ "ldr r4, %[pfpr]\n\t"
-+ "vldmia r4, {d0-d7}\n\t"
-+#endif
-+ //Make the call
-+ "ldr r5, %[pmethod]\n\t"
-+ "blx r5\n\t"
-+
-+ //Fill in return values
-+ "mov %[r0], r0\n\t"
-+ "mov %[r1], r1\n\t"
-+ : [r0]"=r" (r0), [r1]"=r" (r1)
-+ : [pmethod]"m" (pMethod), [pgpr]"m" (pGPR), [pfpr]"m" (pFPR)
-+ : "r4", "r5");
-
- MapReturn(r0, r1, pReturnType, (sal_uInt32*)pRegisterReturn);
- }
- }
-
--#define INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow ) \
-+#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
- if ( nr < arm::MAX_GPR_REGS ) \
- pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
- else \
-- bOverFlow = true; \
-- if (bOverFlow) \
- *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
-
- #ifdef __ARM_EABI__
--#define INSERT_INT64( pSV, nr, pGPR, pDS, pStart, bOverflow ) \
-+#define INSERT_INT64( pSV, nr, pGPR, pDS, pStart ) \
- if ( (nr < arm::MAX_GPR_REGS) && (nr % 2) ) \
- { \
- ++nr; \
-@@ -281,8 +314,6 @@ void callVirtualMethod(
- pGPR[nr++] = *(reinterpret_cast<sal_uInt32 *>( pSV ) + 1); \
- } \
- else \
-- bOverFlow = true; \
-- if (bOverFlow) \
- { \
- if ( (pDS - pStart) % 2) \
- { \
-@@ -292,31 +323,65 @@ void callVirtualMethod(
- *pDS++ = reinterpret_cast<sal_uInt32 *>( pSV )[1]; \
- }
- #else
--#define INSERT_INT64( pSV, nr, pGPR, pDS, pStart, bOverflow ) \
-- INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow) \
-- INSERT_INT32( ((sal_uInt32*)pSV)+1, nr, pGPR, pDS, bOverflow)
-+#define INSERT_INT64( pSV, nr, pGPR, pDS, pStart ) \
-+ INSERT_INT32( pSV, nr, pGPR, pDS ) \
-+ INSERT_INT32( ((sal_uInt32*)pSV)+1, nr, pGPR, pDS )
- #endif
-
--#define INSERT_FLOAT( pSV, nr, pFPR, pDS, bOverflow ) \
-- INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow)
-+#ifdef __ARM_PCS_VFP
-+// Since single and double arguments share the same register bank the filling of the
-+// registers is not always linear. Single values go to the first available single register,
-+// while doubles need to have an 8 byte alignment, so only go into double registers starting
-+// at every other single register. For ex a float, double, float sequence will fill registers
-+// s0, d1, and s1, actually corresponding to the linear order s0,s1, d1.
-+//
-+// These use the single/double register array and counters and ignore the pGPR argument
-+// nSR and nDR are the number of single and double precision registers that are no longer
-+// available
-+#define INSERT_FLOAT( pSV, nr, pGPR, pDS ) \
-+ if (nSR % 2 == 0) {\
-+ nSR = 2*nDR; \
-+ }\
-+ if ( nSR < arm::MAX_FPR_REGS*2 ) {\
-+ pSPR[nSR++] = *reinterpret_cast<float *>( pSV ); \
-+ if ((nSR % 2 == 1) && (nSR > 2*nDR)) {\
-+ nDR++; \
-+ }\
-+ }\
-+ else \
-+ {\
-+ *pDS++ = *reinterpret_cast<float *>( pSV );\
-+ }
-+#define INSERT_DOUBLE( pSV, nr, pGPR, pDS, pStart ) \
-+ if ( nDR < arm::MAX_FPR_REGS ) { \
-+ pFPR[nDR++] = *reinterpret_cast<double *>( pSV ); \
-+ }\
-+ else\
-+ {\
-+ if ( (pDS - pStart) % 2) \
-+ { \
-+ ++pDS; \
-+ } \
-+ *pDS++ = *reinterpret_cast<double *>( pSV );\
-+ }
-+#else
-+#define INSERT_FLOAT( pSV, nr, pFPR, pDS ) \
-+ INSERT_INT32( pSV, nr, pGPR, pDS )
-
--#define INSERT_DOUBLE( pSV, nr, pFPR, pDS, pStart, bOverflow ) \
-- INSERT_INT64( pSV, nr, pGPR, pDS, pStart, bOverflow )
-+#define INSERT_DOUBLE( pSV, nr, pFPR, pDS, pStart ) \
-+ INSERT_INT64( pSV, nr, pGPR, pDS, pStart )
-+#endif
-
--#define INSERT_INT16( pSV, nr, pGPR, pDS, bOverflow ) \
-+#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
- if ( nr < arm::MAX_GPR_REGS ) \
- pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
- else \
-- bOverFlow = true; \
-- if (bOverFlow) \
- *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
-
--#define INSERT_INT8( pSV, nr, pGPR, pDS, bOverflow ) \
-+#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
- if ( nr < arm::MAX_GPR_REGS ) \
- pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
- else \
-- bOverFlow = true; \
-- if (bOverFlow) \
- *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
-
- namespace {
-@@ -336,6 +401,11 @@ static void cpp_call(
- sal_uInt32 pGPR[arm::MAX_GPR_REGS];
- sal_uInt32 nGPR = 0;
-
-+ double pFPR[arm::MAX_FPR_REGS];
-+ float *pSPR = reinterpret_cast< float *>(&pFPR);
-+ sal_uInt32 nSR = 0;
-+ sal_uInt32 nDR = 0;
-+
- // return
- typelib_TypeDescription * pReturnTypeDescr = 0;
- TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-@@ -343,7 +413,6 @@ static void cpp_call(
-
- void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
-
-- bool bOverFlow = false;
- bool bSimpleReturn = true;
- if (pReturnTypeDescr)
- {
-@@ -359,13 +428,13 @@ static void cpp_call(
- ? __builtin_alloca( pReturnTypeDescr->nSize )
- : pUnoReturn); // direct way
-
-- INSERT_INT32( &pCppReturn, nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT32( &pCppReturn, nGPR, pGPR, pStack );
- }
- }
- // push this
- void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
- + aVtableSlot.offset;
-- INSERT_INT32( &pAdjustedThisPtr, nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT32( &pAdjustedThisPtr, nGPR, pGPR, pStack );
-
- // stack space
- OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
-@@ -397,7 +466,7 @@ static void cpp_call(
- #if OSL_DEBUG_LEVEL > 2
- fprintf(stderr, "hyper is %lx\n", pCppArgs[nPos]);
- #endif
-- INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack, pStackStart, bOverFlow );
-+ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack, pStackStart );
- break;
- case typelib_TypeClass_LONG:
- case typelib_TypeClass_UNSIGNED_LONG:
-@@ -405,22 +474,22 @@ static void cpp_call(
- #if OSL_DEBUG_LEVEL > 2
- fprintf(stderr, "long is %x\n", pCppArgs[nPos]);
- #endif
-- INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
- break;
- case typelib_TypeClass_SHORT:
- case typelib_TypeClass_CHAR:
- case typelib_TypeClass_UNSIGNED_SHORT:
-- INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
- break;
- case typelib_TypeClass_BOOLEAN:
- case typelib_TypeClass_BYTE:
-- INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
- break;
- case typelib_TypeClass_FLOAT:
-- INSERT_FLOAT( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_FLOAT( pCppArgs[nPos], nGPR, pGPR, pStack );
- break;
- case typelib_TypeClass_DOUBLE:
-- INSERT_DOUBLE( pCppArgs[nPos], nGPR, pGPR, pStack, pStackStart, bOverFlow );
-+ INSERT_DOUBLE( pCppArgs[nPos], nGPR, pGPR, pStack, pStackStart );
- break;
- default:
- break;
-@@ -457,7 +526,7 @@ static void cpp_call(
- // no longer needed
- TYPELIB_DANGER_RELEASE( pParamTypeDescr );
- }
-- INSERT_INT32( &(pCppArgs[nPos]), nGPR, pGPR, pStack, bOverFlow );
-+ INSERT_INT32( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
- }
- }
-
-@@ -468,7 +537,8 @@ static void cpp_call(
- pCppReturn, pReturnTypeRef,
- pStackStart,
- (pStack - pStackStart),
-- pGPR, nGPR);
-+ pGPR, nGPR,
-+ pFPR, nDR);
-
- // NO exception occurred...
- *ppUnoExc = 0;
diff --git a/patches/icu-4.9.diff b/patches/icu-4.9.diff
deleted file mode 100644
index 809dffb..0000000
--- a/patches/icu-4.9.diff
+++ /dev/null
@@ -1,92 +0,0 @@
- configure.in | 6 ++++++
- i18npool/source/breakiterator/Makefile | 8 +++++++-
- set_soenv.in | 1 +
- 3 files changed, 14 insertions(+), 1 deletion(-)
-
-New commits:
-commit ba3550bc82b8fb697b905c9913e399e1835b7cc0
-Author: Eike Rathke <erack@redhat.com>
-Date: Tue Apr 3 16:15:48 2012 +0200
-
- as of ICU 4.9 RBBI the Prepend property is empty
-
- Backport of 43084e8b30c101a44510b7a8267d5c2b316a17bb
- * config_host.mk doesn't exist, instead changes to set_soenv.in
- * i18npool/CustomTarget_breakiterator.mk doesn't exist, instead same changes
- to i18npool/source/breakiterator/Makefile
- * char.txt and char_in.txt unchanged
-
- Signed-off-by: Tomáš Chvátal <tomas.chvatal@gmail.com>
-
-diff --git a/configure.in b/configure.in
-index ea959e6..8e45756 100644
---- a/configure.in
-+++ b/configure.in
-@@ -6162,6 +6162,7 @@ ICU_MAJOR=
- ICU_MINOR=
- ICU_MICRO=
- ICU_RECLASSIFIED_CLOSE_PARENTHESIS=
-+ICU_RECLASSIFIED_PREPEND_SET_EMPTY=
- AC_MSG_CHECKING([which icu to use])
- if test "$with_system_icu" = "yes"; then
- AC_MSG_RESULT([external])
-@@ -6207,6 +6208,9 @@ if test "$with_system_icu" = "yes"; then
- if test "$ICU_MAJOR" -ge "5" -o "$ICU_MAJOR" = "4" -a "$ICU_MINOR" -ge "4"; then
- ICU_RECLASSIFIED_CLOSE_PARENTHESIS="YES"
- fi
-+ if test "$ICU_MAJOR" -ge "5" -o "$ICU_MAJOR" = "4" -a "$ICU_MINOR" -ge "9"; then
-+ ICU_RECLASSIFIED_PREPEND_SET_EMPTY="YES"
-+ fi
- fi
-
- MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS icui18n$ICU_MAJOR$ICU_MINOR.dll icuuc$ICU_MAJOR$ICU_MINOR.dll icudata$ICU_MAJOR$ICU_MINOR.dll"
-@@ -6214,6 +6218,7 @@ else
- AC_MSG_RESULT([internal])
- SYSTEM_ICU="NO"
- ICU_RECLASSIFIED_CLOSE_PARENTHESIS="YES"
-+ # ICU_RECLASSIFIED_PREPEND_SET_EMPTY not applied for our internal ICU 4.4.2
- BUILD_TYPE="$BUILD_TYPE ICU"
- fi
- AC_SUBST(SYSTEM_ICU)
-@@ -6224,6 +6229,7 @@ AC_SUBST(ICU_MAJOR)
- AC_SUBST(ICU_MINOR)
- AC_SUBST(ICU_MICRO)
- AC_SUBST(ICU_RECLASSIFIED_CLOSE_PARENTHESIS)
-+AC_SUBST(ICU_RECLASSIFIED_PREPEND_SET_EMPTY)
-
- dnl ===================================================================
- dnl Graphite
-diff --git a/i18npool/source/breakiterator/Makefile b/i18npool/source/breakiterator/Makefile
-index b34217a..6aed8b2 100644
---- a/i18npool/source/breakiterator/Makefile
-+++ b/i18npool/source/breakiterator/Makefile
-@@ -83,10 +83,16 @@ OpenOffice_dat.c : $(subst .brk,_brk.c,$(BRKFILES))
- %.brk : %.txt.p
- $(GENBRK) -r $< -o $@
-
--# fdo#31271 ")" reclassified in more recent ICU/Unicode Standards
-+# fdo#31271 ")" reclassified in more recent Unicode Standards / ICU 4.4
-+# Prepend set empty as of Unicode Version 6.1 / ICU 4.9, which bails out if used.
-+# NOTE: strips every line with _word_ 'Prepend', including $Prepend
- %.txt.p : $(realpath $(SRC_ROOT)/i18npool/source/breakiterator/data)/%.txt
- ifeq ($(ICU_RECLASSIFIED_CLOSE_PARENTHESIS),YES)
-+ifeq ($(ICU_RECLASSIFIED_PREPEND_SET_EMPTY),YES)
-+ sed "s#\[:LineBreak = Close_Punctuation:\]#\[\[:LineBreak = Close_Punctuation:\] \[:LineBreak = Close_Parenthesis:\]\]#;/\<Prepend\>/d" $< > $@
-+else
- sed "s#\[:LineBreak = Close_Punctuation:\]#\[\[:LineBreak = Close_Punctuation:\] \[:LineBreak = Close_Parenthesis:\]\]#" $< > $@
-+endif
- else
- cp $< $@
- endif
-diff --git a/set_soenv.in b/set_soenv.in
-index 3dc9cfa..a8561cd 100755
---- a/set_soenv.in
-+++ b/set_soenv.in
-@@ -1881,6 +1881,7 @@ ToFile( "ICU_MAJOR", "@ICU_MAJOR@", "e" );
- ToFile( "ICU_MINOR", "@ICU_MINOR@", "e" );
- ToFile( "ICU_MICRO", "@ICU_MICRO@", "e" );
- ToFile( "ICU_RECLASSIFIED_CLOSE_PARENTHESIS", "@ICU_RECLASSIFIED_CLOSE_PARENTHESIS@", "e" );
-+ToFile( "ICU_RECLASSIFIED_PREPEND_SET_EMPTY", "@ICU_RECLASSIFIED_PREPEND_SET_EMPTY@", "e" );
- ToFile( "SYSTEM_GENBRK", "@SYSTEM_GENBRK@", "e" );
- ToFile( "SYSTEM_GENCCODE", "@SYSTEM_GENCCODE@", "e" );
- ToFile( "SYSTEM_GENCMN", "@SYSTEM_GENCMN@", "e" );
diff --git a/patches/series b/patches/series
index cdea811..15fe068 100644
--- a/patches/series
+++ b/patches/series
@@ -20,19 +20,14 @@ make-pyuno-work-with-system-wide-module-install.diff
search-usr-share-for-images.diff
make-package-modules-not-suck.diff
fix-ARM-detection-in-set-soenv.diff
-add-debian-multiarch-support.diff
propagate-gb_FULLDEPS.diff
disable-unoapi-subsequentcheck-for-now.diff
mediwiki-oor-replace.diff
-armhf-bridges.diff
-armhf-bridges-fix-armv4t-armel.diff
move-binfilter-mimetypes-in-extra-desktop-file.diff
pythonloader.uno.so-libpyuno-and-pyuno-are-duplicate.diff
-armhf-bridges-doubles.diff
debian-hardened-buildflags.diff
gtk3-hack-explicit-gmodule.diff
gcc-4.7.diff
gcc-4.7-i386.diff
gcc-4.7-amd64.diff
-icu-4.9.diff
tests-fix-build-with-jdk7.diff
diff --git a/rules b/rules
index f02688e..7e1b102 100755
--- a/rules
+++ b/rules
@@ -63,9 +63,9 @@ export QUILT_OPTIONS="-p1 -F0"
GIT_BASEURL:=git://anongit.freedesktop.org/libreoffice
# NOT in proper libreoffice-3-5 branch
-# use ./g checkout -b tag-libreoffice-3.5.2.2 libreoffice-3.5.2.2
-GIT_TAG=libreoffice-3.5.2.2
-GIT_BRANCH=tag-libreoffice-3.5.2.2
+# use ./g checkout -b tag-libreoffice-3.5.3.1 libreoffice-3.5.3.1
+GIT_TAG=libreoffice-3.5.3.1
+GIT_BRANCH=tag-libreoffice-3.5.3.1
SOURCE_TREE=.
STAMP_DIR=debian/stampdir
TARFILE_LOCATION=$(CURDIR)/src
--
LibreOffice packaging repository
Reply to: