The analysis given above is correct. The following patch fixes the (quite annoying) problem for me:
--- /usr/include/bits/byteswap.h.old 2010-06-26 21:39:16.000000000 +0200 +++ /usr/include/bits/byteswap.h 2010-06-26 21:39:49.000000000 +0200 @@ -29,7 +29,7 @@ /* Swap bytes in 16 bit value. */ #define __bswap_constant_16(x) \ - ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) + ((unsigned short int)((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) #if defined __GNUC__ && __GNUC__ >= 2 # define __bswap_16(x) \ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org