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

[SCM] LibreOffice packaging repository branch, ubuntu-precise-3.5, updated. libreoffice_3.5.2_rc2-1-124-g08b0b01



The following commit has been merged in the ubuntu-precise-3.5 branch:
commit e9f75bd06bd8ebc3a31f5f9e5c9c945c1013c778
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date:   Sun Apr 29 03:02:00 2012 +0200

    remove upstreamed patches

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/bypass-GtkSalPrinter-when-it-is-not-enabled.diff b/patches/bypass-GtkSalPrinter-when-it-is-not-enabled.diff
deleted file mode 100644
index 601da7c..0000000
--- a/patches/bypass-GtkSalPrinter-when-it-is-not-enabled.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-From fa87093686614d75d63664722de103e47f91c7db Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon@redhat.com>
-Date: Wed, 28 Mar 2012 13:25:25 +0200
-Subject: [PATCH] bypass GtkSalPrinter when it is not enabled
-
----
- vcl/unx/gtk/gdi/salprn-gtk.cxx |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/vcl/unx/gtk/gdi/salprn-gtk.cxx b/vcl/unx/gtk/gdi/salprn-gtk.cxx
-index ffa584c..4ea5f7b 100644
---- a/vcl/unx/gtk/gdi/salprn-gtk.cxx
-+++ b/vcl/unx/gtk/gdi/salprn-gtk.cxx
-@@ -239,7 +239,7 @@ GtkSalPrinter::StartJob(
-         vcl::PrinterController& io_rController)
- {
-     if (!lcl_useSystemPrintDialog())
--        return impl_doJob(i_pFileName, i_rJobName, i_rAppName, io_pSetupData, 1, false, io_rController);
-+        return PspSalPrinter::StartJob(i_pFileName, i_rJobName, i_rAppName, io_pSetupData, io_rController);
- 
-     assert(!m_pImpl);
- 
--- 
-1.7.9.1
-
diff --git a/patches/fdo-43895-lp-905355-Never-let-users-save-in-tmp-by-d.diff b/patches/fdo-43895-lp-905355-Never-let-users-save-in-tmp-by-d.diff
deleted file mode 100644
index e359d41..0000000
--- a/patches/fdo-43895-lp-905355-Never-let-users-save-in-tmp-by-d.diff
+++ /dev/null
@@ -1,95 +0,0 @@
-diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
-index 141b389..6acb006 100644
---- a/sfx2/source/dialog/filedlghelper.cxx
-+++ b/sfx2/source/dialog/filedlghelper.cxx
-@@ -100,6 +100,9 @@
- #include <helpid.hrc>
- #include <sfxlocal.hrc>
- #include <rtl/strbuf.hxx>
-+#ifdef UNX
-+#include <sys/stat.h>
-+#endif
- 
- //-----------------------------------------------------------------------------
- 
-@@ -1648,6 +1651,33 @@ void FileDialogHelper_Impl::getRealFilter( String& _rFilter ) const
-     }
- }
- 
-+void FileDialogHelper_Impl::verifyPath()
-+{
-+#ifdef UNX
-+    static char const s_FileScheme[] = "file://";
-+    if (0 != rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength(
-+                maPath.getStr(), maPath.getLength(),
-+                s_FileScheme, RTL_CONSTASCII_LENGTH(s_FileScheme)))
-+    {
-+        return;
-+    }
-+    const OString sFullPath = OUStringToOString(
-+            maPath.copy(RTL_CONSTASCII_LENGTH(s_FileScheme)) + maFileName,
-+            osl_getThreadTextEncoding() );
-+    struct stat aFileStat;
-+    stat( sFullPath.getStr(), &aFileStat );
-+    // lp#905355, fdo#43895
-+    // Check that the file has read only permission and is in /tmp -- this is
-+    //  the case if we have opened the file from the web with firefox only.
-+    if ( maPath.reverseCompareToAsciiL("file:///tmp",11) == 0 &&
-+            ( aFileStat.st_mode & (S_IRWXO + S_IRWXG + S_IRWXU) ) == S_IRUSR )
-+    {
-+        maPath = SvtPathOptions().GetWorkPath();
-+        mxFileDlg->setDisplayDirectory( maPath );
-+    }
-+#endif
-+}
-+
- // ------------------------------------------------------------------------
- void FileDialogHelper_Impl::displayFolder( const ::rtl::OUString& _rPath )
- {
-@@ -1661,6 +1691,7 @@ void FileDialogHelper_Impl::displayFolder( const ::rtl::OUString& _rPath )
-         try
-         {
-             mxFileDlg->setDisplayDirectory( maPath );
-+            verifyPath();
-         }
-         catch( const IllegalArgumentException& )
-         {
-@@ -1678,6 +1709,7 @@ void FileDialogHelper_Impl::setFileName( const ::rtl::OUString& _rFile )
-         try
-         {
-             mxFileDlg->setDefaultName( maFileName );
-+            verifyPath();
-         }
-         catch( const IllegalArgumentException& )
-         {
-diff --git a/sfx2/source/dialog/filedlgimpl.hxx b/sfx2/source/dialog/filedlgimpl.hxx
-index 6770bb7..3433883 100644
---- a/sfx2/source/dialog/filedlgimpl.hxx
-+++ b/sfx2/source/dialog/filedlgimpl.hxx
-@@ -155,6 +155,8 @@ namespace sfx2
- 
-         void                    implInitializeFileName( );
- 
-+        void                    verifyPath( );
-+
-         void                    implGetAndCacheFiles( const ::com::sun::star::uno::Reference< XInterface >& xPicker  ,
-                                                             SvStringsDtor*&               rpURLList,
-                                                       const SfxFilter*                    pFilter  );
-commit 7c6154970edd2739eac36a52b17ae6569fd12c1c
-Author: Michael Stahl <mstahl@redhat.com>
-Date:   Thu Apr 5 18:09:41 2012 +0200
-
-    fdo#43895 lp#905355: fix the fix so it doesn't crash
-    
-    rtl::OUString rtl::OUString::copy(sal_Int32) const: Assertion
-    `beginIndex >= 0 && beginIndex <= getLength()' failed.
-    (regression from dd2fe95cce75f1157bd1c75d286a0047b2e4175e)
-    
-    Signed-off-by: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
-
-commit 2405e5c02aab644811ea27c10f876210b15535b4
-Author: Andrzej J. R. Hunt <andrzej@hunt.org>
-Date:   Tue Mar 27 10:32:52 2012 +0200
-
-    fdo#43895 lp#905355: Never let users save in /tmp by default
-    (cherry picked from commit dd2fe95cce75f1157bd1c75d286a0047b2e4175e)
diff --git a/patches/fdo-46687-fix-find-toolbar-X-error-handling.diff b/patches/fdo-46687-fix-find-toolbar-X-error-handling.diff
deleted file mode 100644
index 3f9c4a6..0000000
--- a/patches/fdo-46687-fix-find-toolbar-X-error-handling.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-From 6d97ea37bba52b21648c91276bc9281d06cdd148 Mon Sep 17 00:00:00 2001
-From: Michael Meeks <michael.meeks@suse.com>
-Date: Thu, 19 Apr 2012 14:34:35 +0100
-Subject: [PATCH] fdo#46687 - fix find toolbar X error handling
-
----
- vcl/unx/gtk/window/gtkframe.cxx |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
-index 4137a8d..a647bf8 100644
---- a/vcl/unx/gtk/window/gtkframe.cxx
-+++ b/vcl/unx/gtk/window/gtkframe.cxx
-@@ -2231,6 +2231,8 @@ void GtkSalFrame::ToTop( sal_uInt16 nFlags )
-                 // to do this we need to synchronize with the XServer
-                 GetGenericData()->ErrorTrapPush();
-                 XSetInputFocus( getDisplay()->GetDisplay(), widget_get_xid(m_pWindow), RevertToParent, CurrentTime );
-+                // fdo#46687 - an XSync should not be necessary - but for some reason it is.
-+                XSync( getDisplay()->GetDisplay(), False );
-                 GetGenericData()->ErrorTrapPop();
-             }
- #endif
-@@ -3239,9 +3241,11 @@ gboolean GtkSalFrame::signalMap( GtkWidget *pWidget, GdkEvent*, gpointer frame )
- #if !GTK_CHECK_VERSION(3,0,0)
-     if( bSetFocus )
-     {
-+        GetGenericData()->ErrorTrapPush();
-         XSetInputFocus( pThis->getDisplay()->GetDisplay(),
-                         widget_get_xid(pWidget),
-                         RevertToParent, CurrentTime );
-+        GetGenericData()->ErrorTrapPop();
-     }
- #else
-     (void)pWidget; (void)bSetFocus;
--- 
-1.7.9.5
-
diff --git a/patches/series b/patches/series
index 003bb0d..d25bac4 100644
--- a/patches/series
+++ b/patches/series
@@ -20,23 +20,16 @@ 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-sc-sw-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
 pkgconfig-mozilla-plugin.diff
 ubuntu-quicklists.diff
-fdo-43895-lp-905355-Never-let-users-save-in-tmp-by-d.diff
-bypass-GtkSalPrinter-when-it-is-not-enabled.diff
 lp-926940-visio-mime-for-draw.diff
-fdo-46687-fix-find-toolbar-X-error-handling.diff
 lp-753627-readd-updated-Ubuntu-brand-palette-colors.diff
 lp-973134-default-to-Documents-for-saving-look-for-t.diff
 lp-527938-triple-paperbag-fix-service-name-again.diff

-- 
LibreOffice packaging repository


Reply to: