[SPARC]: sparc64 gcc-4.2.0 20070317 -Werror failure
authorMikael Pettersson <mikpe@it.uu.se>
Tue, 27 Mar 2007 08:13:55 +0000 (01:13 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Mar 2007 08:13:55 +0000 (01:13 -0700)
Compiling 2.6.21-rc5 with gcc-4.2.0 20070317 (prerelease)
for sparc64 fails as follows:

  gcc -Wp,-MD,arch/sparc64/kernel/.time.o.d  -nostdinc -isystem /home/mikpe/pkgs/linux-sparc64/gcc-4.2.0/lib/gcc/sparc64-unknown-linux-gnu/4.2.0/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -Werror   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(time)"  -D"KBUILD_MODNAME=KBUILD_STR(time)" -c -o arch/sparc64/kernel/time.o arch/sparc64/kernel/time.c
cc1: warnings being treated as errors
arch/sparc64/kernel/time.c: In function 'kick_start_clock':
arch/sparc64/kernel/time.c:559: warning: overflow in implicit constant conversion
make[1]: *** [arch/sparc64/kernel/time.o] Error 1
make: *** [arch/sparc64/kernel] Error 2

gcc gets unhappy when the MSTK_SET macro's u8 __val variable
is updated with &= ~0xff (MSTK_YEAR_MASK). Making the constant
unsigned fixes the problem.

[ I fixed up the sparc32 side as well -DaveM ]

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/asm-sparc/mostek.h
include/asm-sparc64/mostek.h

index bd92a78f49379f5e9b339552b9081f6072c33cbe..958d0513a6d4151eecd78c0acdc22b0bb4f71510 100644 (file)
@@ -87,7 +87,7 @@ extern void __iomem *mstk48t02_regs;
 #define        MSTK_DOW_MASK   0x07
 #define        MSTK_DOM_MASK   0x3f
 #define        MSTK_MONTH_MASK 0x1f
-#define        MSTK_YEAR_MASK  0xff
+#define        MSTK_YEAR_MASK  0xffU
 
 /* Binary coded decimal conversion macros. */
 #define MSTK_REGVAL_TO_DECIMAL(x)  (((x) & 0x0F) + 0x0A * ((x) >> 0x04))
index 09b5aba6678aee24cc16064401644e38cc4657e5..d14dd8988161fd05f14258bf34fd618f656d5d40 100644 (file)
@@ -89,7 +89,7 @@ extern void __iomem *mstk48t02_regs;
 #define        MSTK_DOW_MASK   0x07
 #define        MSTK_DOM_MASK   0x3f
 #define        MSTK_MONTH_MASK 0x1f
-#define        MSTK_YEAR_MASK  0xff
+#define        MSTK_YEAR_MASK  0xffU
 
 /* Binary coded decimal conversion macros. */
 #define MSTK_REGVAL_TO_DECIMAL(x)  (((x) & 0x0F) + 0x0A * ((x) >> 0x04))