From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754301AbdERCxj (ORCPT ); Wed, 17 May 2017 22:53:39 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:46341 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751445AbdERCxh (ORCPT ); Wed, 17 May 2017 22:53:37 -0400 From: Randy Dunlap Subject: Re: sparse on scripts/kconfig/*.c To: Dan Carpenter Cc: linux-kbuild , LKML , smatch@vger.kernel.org References: <20170510101838.c5nwzaraeybyypwj@mwanda> <20170510205357.xshdaack6mwku5np@mwanda> <605fc799-70c1-14af-904d-723b43ab9025@infradead.org> <20170516094308.c62gxxaopegqfxym@mwanda> Message-ID: <931af9fe-3e42-9cc6-9bd5-74c1ef0e3114@infradead.org> Date: Wed, 17 May 2017 19:53:35 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170516094308.c62gxxaopegqfxym@mwanda> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/16/17 02:43, Dan Carpenter wrote: > On Mon, May 15, 2017 at 11:00:22AM -0700, Randy Dunlap wrote: >> On 05/10/17 13:53, Dan Carpenter wrote: >>> I have created some new tools to make this process easier. >>> >>> 1) First you still have to edit the Makefile: >>> >>> -HOSTCC = gcc >>> +HOSTCC = ~/progs/smatch/devel/cgcc >>> >>> 2) Build the data with this command: >>> >>> ~/progs/smatch/devel/smatch_scripts/build_generic_data.sh --target scripts/ >>> >>> The --target scripts/ is because we want to run smatch on the scripts/ >>> directory. >>> >>> 3) Run smatch: >>> >>> ~/progs/smatch/devel/smatch_scripts/test_generic.sh --target scripts/ >>> >>> I just wrote this code today so it might be a bit rough perhaps. Let me >>> know if you have any issues. It doesn't find anything like I said >>> before, but hopefully this can help other people who want to run Smatch >>> on user space code. >> >> Thanks, Dan. >> >> I get this when running build_generic_data.sh: >> >> readline() on closed filehandle FILE at /home/rdunlap/projects/smatch/smatch_scripts/../smatch_data/db/fill_db_caller_info.pl line 33. >> > > Thanks, I will push a fix for this later today. > >> I see scripts/mod/* being built/checked ... but not scripts/kconfig/*. >> >> Any ideas? >> > > Hm... It turns out we need to do a `make mrproper` between runs. > > make mrproper ; make allmodconfig ; ~/progs/smatch/release/smatch_scripts/build_generic_data.sh --target scripts/ > make mrproper ; make allmodconfig ; ~/progs/smatch/release/smatch_scripts/test_generic.sh --target scripts/ > > When I remove the grep out the autogenerated code this is what is left > grep -v .lex.c smatch_warns.txt | grep -v .tab.c > > scripts/kconfig/expr.c:1027 expr_compare_type() info: ignoring unreachable code. > scripts/kconfig/symbol.c:1152 sym_check_print_recursive() error: we previously assumed 'prop' could be null (see line 1144) > scripts/kconfig/symbol.c:1153 sym_check_print_recursive() warn: curly braces intended? > scripts/kconfig/symbol.c:1155 sym_check_print_recursive() warn: inconsistent indenting > scripts/kconfig/menu.c:662 get_symbol_str() error: we previously assumed 'sym' could be null (see line 649) > scripts/mod/modpost.c:460 parse_elf() info: ignoring unreachable code. > scripts/mod/modpost.c:504 parse_elf() info: ignoring unreachable code. OK, I don't need to do it then. However, there are several other config programs in scripts/kconfig/ that are not being checked by this. I did a 'git pull' for updates. On the rebuild, I get this error: macro_table.c:30:31: fatal error: cwchash/hashtable.h: No such file or directory #include "cwchash/hashtable.h" My problem? thanks for your help. -- ~Randy