[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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: