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