Re: sparse on scripts/kconfig/*.c

From: Christoph Hellwig
Date: Wed May 10 2017 - 03:28:53 EST


On Tue, May 09, 2017 at 05:27:01PM -0700, Randy Dunlap wrote:
> On 05/09/17 13:17, Christoph Hellwig wrote:
> > On Tue, May 09, 2017 at 09:47:41AM -0700, Randy Dunlap wrote:
> >> Hi,
> >>
> >> I've been attempting to run sparse on the kconfig/ C files -- without success.
> >>
> >> The kbuild files don't try to support CHECK in scripts/kconfig/ AFAICT,
> >> and just running sparse on the C files has issues with not being able to
> >> find header files.
> >>
> >> Has anyone done this? Any clues about how to do it?
> >
> > As a wild guess from using sparse on various userspace projects:
> >
> > have you tried simply setting HOSTCC to cgcc?
>
> I don't quite see what that has to do with running sparse ($CHECK, not $HOSTCC).

cgcc is a gcc wrappr that calls sparse. I just trie quickly to patch
Makefile to run cgcc instead of gcc as HOSTCC an it seems to work:

HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:117:5: warning: symbol 'insert_extra_deps' was not declared. Should it be static?
scripts/basic/fixdep.c:118:6: warning: symbol 'target' was not declared. Should it be static?
scripts/basic/fixdep.c:119:6: warning: symbol 'depfile' was not declared. Should it be static?
scripts/basic/fixdep.c:120:6: warning: symbol 'cmdline' was not declared. Should it be static?

But then I run into the known cgcc bug that it also calls sparse when
called for linking. Which reminds me that I need to go back and fix
that.