libgcrypt11/mips(el): FTBFS with gcc-4.4
Andreas Metzler
ametzler at downhill.at.eu.org
Sun Jan 17 10:04:26 CET 2010
Andreas Metzler <ametzler at downhill.at.eu.org> wrote:
> this is <http://bugs.debian.org/561475>. Debian/unstable has recently
> switched to gcc-4.4. This seems to have caused a build-failure for
> libgcrypt.
> cu andreas
> ----- Forwarded message from Aurelien Jarno <aurel32 at debian.org> -----
> From: Aurelien Jarno <aurel32 at debian.org>
> Message-ID: <20091217133201.16090.92884.reportbug at mipsel.aurel32.net>
> Date: Thu, 17 Dec 2009 14:32:01 +0100
> Subject: Bug#561475: libgcrypt11/mips(el): FTBFS with gcc-4.4
> Package: libgcrypt11
> Version: 1.4.1-1
> Severity: serious
> Tags: patch
> Justification: fails to build from source
> mpfr fails to build on mips(el) with gcc-4.4. A full build log can be
> found here:
> https://buildd.debian.org/fetch.cgi?pkg=libgcrypt11&arch=mipsel&ver=1.4.5-1&stamp=1260977092&file=log&as=raw
> This is due to a change in GCC 4.4, the h asm constraint is not
> supported anymore on mips. For more details please have a look at:
> http://gcc.gnu.org/gcc-4.4/changes.html
> The patch below fixes the problem by implementing the solution
> recommended by the previous web page. With it libgcrypt11 builds
> successfully.
> --- libgcrypt11-1.4.5.orig/mpi/longlong.h
> +++ libgcrypt11-1.4.5/mpi/longlong.h
> @@ -714,7 +714,15 @@ extern USItype __udiv_qrnnd ();
> ************** MIPS *****************
> ***************************************/
> #if defined (__mips__) && W_TYPE_SIZE == 32
> -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
> +#if (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
> +#define umul_ppmm(w1, w0, u, v) \
> + do { \
> + UDItype _r; \
> + _r = (UDItype) u * v; \
> + (w1) = _r >> 32; \
> + (w0) = (USItype) _r; \
> + } while (0)
> +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
> #define umul_ppmm(w1, w0, u, v) \
> __asm__ ("multu %2,%3" \
> : "=l" ((USItype)(w0)), \
> @@ -739,7 +747,16 @@ extern USItype __udiv_qrnnd ();
> ************** MIPS/64 **************
> ***************************************/
> #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
> -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
> +#if (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
> +typedef unsigned int UTItype __attribute__ ((mode (TI)));
> +#define umul_ppmm(w1, w0, u, v) \
> + do { \
> + UTItype _r; \
> + _r = (UTItype) u * v; \
> + (w1) = _r >> 64; \
> + (w0) = (UDItype) _r; \
> + } while (0)
> +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
> #define umul_ppmm(w1, w0, u, v) \
> __asm__ ("dmultu %2,%3" \
> : "=l" ((UDItype)(w0)), \
[...]
Hello,
am I currently stuck in somebody's spam filter or is there a reason
why this was ignored?
thanks, cu andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
More information about the Gcrypt-devel
mailing list