[package] fix gnupg compilation failure with gcc-4.4 (#6951)
authorFlorian Fainelli <florian@openwrt.org>
Sat, 27 Mar 2010 13:31:27 +0000 (13:31 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 27 Mar 2010 13:31:27 +0000 (13:31 +0000)
SVN-Revision: 20510

utils/gnupg/patches/001-mips_gcc4.4.patch [new file with mode: 0644]

diff --git a/utils/gnupg/patches/001-mips_gcc4.4.patch b/utils/gnupg/patches/001-mips_gcc4.4.patch
new file mode 100644 (file)
index 0000000..b101a5b
--- /dev/null
@@ -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"     \