Bug#611644: libc6-dev: Wrong definition of __bswap_constant_16 in bits.h generates spurious compiler warnings with optimizations
Package: libc6-dev
Version: 2.11.2-10
Severity: important
Tags: patch
This has been discussed as a gcc bug, but it is in fact a libc6-dev bug, see
bug #561249.
Rumored to have been fixed in full glibc, but however not in eglibc (as of
trunk of today).
Patch attached.
-- System Information:
Debian Release: 6.0
APT prefers unstable
APT policy: (990, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.36-trunk-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libc6-dev depends on:
ii libc-dev-bin 2.11.2-10 Embedded GNU C Library: Developmen
ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib
ii linux-libc-dev 2.6.32-30 Linux support headers for userspac
Versions of packages libc6-dev recommends:
ii gcc [c-compiler] 4:4.4.5-2 The GNU C compiler
ii gcc-4.1 [c-compiler] 4.1.2-29 The GNU C compiler
ii gcc-4.2 [c-compiler] 4.2.4-6 The GNU C compiler
ii gcc-4.3 [c-compiler] 4.3.5-4 The GNU C compiler
ii gcc-4.4 [c-compiler] 4.4.5-10 The GNU C compiler
ii gcc-4.6 [c-compiler] 4.6-20110125-1 The GNU C compiler
Versions of packages libc6-dev suggests:
ii glibc-doc 2.11.2-10 Embedded GNU C Library: Documentat
ii manpages-dev 3.27-1 Manual pages about using GNU/Linux
-- no debconf information
--- ./eglibc/libc/bits/byteswap.h.orig 2011-01-31 17:06:19.000000000 +0100
+++ ./eglibc/libc/bits/byteswap.h 2011-01-31 17:06:58.000000000 +0100
@@ -26,7 +26,7 @@
/* Swap bytes in 16 bit value. */
#define __bswap_constant_16(x) \
- ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
+ ((unsigned short int)((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)))
#ifdef __GNUC__
# define __bswap_16(x) \
Reply to: