summaryrefslogtreecommitdiff
path: root/recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch
diff options
context:
space:
mode:
authorGraham Gower <graham.gower@gmail.com>2010-07-01 14:23:33 +0000
committerKhem Raj <raj.khem@gmail.com>2010-07-02 21:21:27 -0700
commitb5ba4364bf8fdcd15456e2c711333abdb288c8cb (patch)
treea74a85ea46105c2eef931f743a45435987512f32 /recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch
parentae74452a585e6295b016d5ea74d394589f4d49eb (diff)
gnupg_1.4.10.bb: fix build on mips(el) with recent gcc.
Patch "borrowed" from openwrt. https://dev.openwrt.org/browser/packages/utils/gnupg/patches/001-mips_gcc4.4.patch Signed-off-by: Graham Gower <graham.gower@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch')
-rw-r--r--recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch b/recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch
new file mode 100644
index 0000000000..b101a5bbe7
--- /dev/null
+++ b/recipes/gnupg/gnupg-1.4.10/mips_gcc4.4.patch
@@ -0,0 +1,42 @@
+Index: gnupg-1.4.10/mpi/longlong.h
+===================================================================
+--- gnupg-1.4.10.orig/mpi/longlong.h 2008-12-11 17:39:43.000000000 +0100
++++ gnupg-1.4.10/mpi/longlong.h 2010-03-27 14:27:53.000000000 +0100
+@@ -706,18 +706,35 @@
+ #endif /* __m88110__ */
+ #endif /* __m88000__ */
+
++/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
++#if defined (__GNUC__) && defined (__GNUC_MINOR__)
++#define __GNUC_PREREQ(maj, min) \
++ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++#else
++#define __GNUC_PREREQ(maj, min) 0
++#endif
++
+ /***************************************
+ ************** MIPS *****************
+ ***************************************/
+ #if defined (__mips__) && W_TYPE_SIZE == 32
+-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
++#if __GNUC_PREREQ (4,4)
++#define umul_ppmm(w1, w0, u, v) \
++ do { \
++ UDItype __ll = (UDItype)(u) * (v); \
++ w1 = __ll >> 32; \
++ w0 = __ll; \
++ } while (0)
++#endif
++#if !defined (umul_ppmm) && __GNUC_PREREQ (2,7)
+ #define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("multu %2,%3" \
+ : "=l" ((USItype)(w0)), \
+ "=h" ((USItype)(w1)) \
+ : "d" ((USItype)(u)), \
+ "d" ((USItype)(v)))
+-#else
++#endif
++#if !defined (umul_ppmm)
+ #define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("multu %2,%3 \n" \
+ "mflo %0 \n" \