Re: sparse on scripts/kconfig/*.c

From: Randy Dunlap
Date: Wed May 10 2017 - 12:43:07 EST


On 05/10/17 00:28, Christoph Hellwig wrote:
> 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

Agreed, that does it.

> 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.
>

Thanks to both you and Dan for your help.

--
~Randy