2007-11-13 10:54:27

by Tilman Schmidt

[permalink] [raw]
Subject: [2.6.24-rc2] make C=1 killed by sparse 0.4 choking on kernel/sched.c

When trying to build 2.6.24-rc2 with checking by sparse 0.4,
my "make" run dies with:

CHECK kernel/sched.c
kernel/sched.c:3616:15: warning: incorrect type in assignment (different signedness)
kernel/sched.c:3616:15: expected long *switch_count
kernel/sched.c:3616:15: got unsigned long *<noident>
kernel/sched.c:3638:16: warning: incorrect type in assignment (different signedness)
kernel/sched.c:3638:16: expected long *switch_count
kernel/sched.c:3638:16: got unsigned long *<noident>
sparse: flow.c:805: rewrite_parent_branch: Assertion `changed' failed.
/bin/sh: line 1: 31460 Aborted /home/ts/kernel/sparse-0.4/sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-decl
-Wno-shadow -D__i386__ -nostdinc -isystem /usr/lib/gcc/i586-suse-linux/4.2.1/include -Wp,-MD,kernel/.sched.o.d -nostdinc -isystem
/usr/lib/gcc/i586-suse-linux/4.2.1/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2
-march=i686 -mtune=pentium4 -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -Iinclude/asm-x86/mach-default
-fno-omit-frame-pointer -fno-optimize-sibling-calls -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -fno-omit-frame-pointer
-D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sched)" -D"KBUILD_MODNAME=KBUILD_STR(sched)" kernel/sched.c
make[1]: *** [kernel/sched.o] Error 134
make: *** [kernel] Error 2
make: *** Waiting for unfinished jobs....

I don't quite know what to make of this. It looks like a bug in
sparse, but kernel/sched.c is perhaps not quite innocent either.
Also it doesn't seem right that the entire kernel compilation
aborts just because of a failed sparse run.

Opinions?

Thanks,
Tilman

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (250.00 B)
OpenPGP digital signature

2007-11-13 10:58:20

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [2.6.24-rc2] make C=1 killed by sparse 0.4 choking on kernel/sched.c

On 11/13/07, Tilman Schmidt <[email protected]> wrote:
> When trying to build 2.6.24-rc2 with checking by sparse 0.4,
> my "make" run dies with:
>
> CHECK kernel/sched.c
> sparse: flow.c:805: rewrite_parent_branch: Assertion `changed' failed.

http://git.kernel.org/?p=devel/sparse/sparse.git;a=commitdiff;h=8d79ef8142b754061d6ef26a3ba29ba503a3621d

2007-11-13 11:40:21

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [2.6.24-rc2] make C=1 killed by sparse 0.4 choking on kernel/sched.c

>
> I don't quite know what to make of this. It looks like a bug in
> sparse, but kernel/sched.c is perhaps not quite innocent either.
> Also it doesn't seem right that the entire kernel compilation
> aborts just because of a failed sparse run.
>
> Opinions?

With "make C=1" you can always do "make kernel/sched.o"
And then continue with "make C=1"

It is on purpose it stops so you are forced to fix your bugs.
It is not designed with sparse errors in mind :-)

Sam