[ooo-build-commit] patches/dev300

René Engelhard rene at kemper.freedesktop.org
Wed Sep 23 06:18:27 PDT 2009


 patches/dev300/apply                        |    2 +
 patches/dev300/armeabi-softfp-buildfix.diff |   47 ++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+)

New commits:
commit 78ae632fcd295443d40d31283f0821849c0a5d51
Author: Rene Engelhard <rene at debian.org>
Date:   Wed Sep 23 15:14:16 2009 +0200

    backport buildfix from issue 105302

diff --git a/patches/dev300/apply b/patches/dev300/apply
index de8ecdf..2d659b8 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1137,6 +1137,8 @@ postset-add-ro.diff
 # [which is a broken setup, but apparently most apps don't break with that ;-)] 
 dmake-space-in-envvar-name.diff, i#101786, jholesov
 
+armeabi-softfp-buildfix.diff, i#105302, doko
+
 [ Java14 ]
 
 # enable build with Java 1.4; can't go upstream
diff --git a/patches/dev300/armeabi-softfp-buildfix.diff b/patches/dev300/armeabi-softfp-buildfix.diff
new file mode 100644
index 0000000..5ba5cdb
--- /dev/null
+++ b/patches/dev300/armeabi-softfp-buildfix.diff
@@ -0,0 +1,47 @@
+--- bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx.old	2008-04-11 10:27:28.000000000 +0000
++++ bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx	2009-09-23 12:45:41.000000000 +0000
+@@ -45,7 +45,17 @@
+ #include <stdio.h>
+ #include <string.h>
+ 
+-#if defined(__ARM_EABI__) && !defined(__SOFTFP__)
++/* 
++ * Based on http://gcc.gnu.org/PR41443
++ * References to __SOFTFP__ are incorrect for EABI; the __SOFTFP__ code
++ * should be used for *soft-float ABI* whether or not VFP is enabled,
++ * and __SOFTFP__ does specifically mean soft-float not soft-float ABI.
++ *
++ * Changing the conditionals to __SOFTFP__ || __ARM_EABI__ then 
++ * -mfloat-abi=softfp should work.  -mfloat-abi=hard won't; that would
++ * need both a new macro to identify the hard-VFP ABI.
++ */
++#if !defined(__ARM_EABI__) && (!defined(__SOFTFP__)
+ #error Not Implemented
+ 
+ /*
+@@ -103,7 +113,7 @@
+ 
+ void MapReturn(long r0, long r1, typelib_TypeClass eReturnType, void *pRegisterReturn)
+ {
+-#ifndef __SOFTFP__
++#if !defined(__ARM_EABI__) && !defined(__SOFTFP__)
+     register float fret asm("f0");
+     register double dret asm("f0");
+ #endif
+@@ -128,14 +138,14 @@
+             *(unsigned char*)pRegisterReturn = (unsigned char)r0;
+             break;
+         case typelib_TypeClass_FLOAT:
+-#ifdef __SOFTFP__
++#if defined(__ARM_EABI__) || defined(__SOFTFP__)
+             ((long*)pRegisterReturn)[0] = r0;
+ #else
+             *(float*)pRegisterReturn = fret;
+ #endif
+ 	    break;
+         case typelib_TypeClass_DOUBLE:
+-#ifdef __SOFTFP__
++#if defined(__ARM_EABI__) || defined(__SOFTFP__)
+             ((long*)pRegisterReturn)[1] = r1;
+             ((long*)pRegisterReturn)[0] = r0;
+ #else


More information about the ooo-build-commit mailing list