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