[Fwd: failed mipsel build of gnupg 1.4.11-1]

Werner Koch wk at gnupg.org
Thu Oct 28 10:48:13 CEST 2010


On Wed, 27 Oct 2010 20:31, thijs at debian.org said:

> This looks like it is
> https://bugs.g10code.com/gnupg/issue1231
> which supposedly was fixed in 1.4.11 as far as I understood. Apparently
> the fix isn't complete...

Lacking a mips box, I was not able to test this change.   Here is the
code we now have in gnupg14:

  #if defined (__mips__) && W_TYPE_SIZE == 32
  #if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )
  #define umul_ppmm(w1, w0, u, v)                                         \
    do {                                                                  \
      UDItype __ll = (UDItype)(u) * (v);                                  \
      w1 = __ll >> 32;                                                    \
      w0 = __ll;                                                          \
    } while (0)
  #elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7

However in libgcrypt 1.4.6 we have this code (by Aurelien Jarno):

  #if defined (__mips__) && W_TYPE_SIZE == 32
  #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)
  
The type definitions are indentical and the cpp conditionals have the
same effect.  libgcrypt 1.4.6 seems to build fine in experimental thus
we should replace the code in gnupg by the one from libgcrypt.


Shalom-Salam,

   Werner

-- 
Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.




More information about the Gnupg-devel mailing list