LINUX: Run the 'sparse' checker if available 65/13665/3
authorAndrew Deason <adeason@sinenomine.net>
Fri, 28 Jun 2019 19:14:48 +0000 (14:14 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 2 Jul 2019 17:37:22 +0000 (13:37 -0400)
commit1210a8d6d96db2d84595d35ef81ec5d176de05e8
tree5dc6b9bc192f79526041cc3606f3614fef6f1819
parent3f0b9907d12c00725548dbaf84fee3e033cb974c
LINUX: Run the 'sparse' checker if available

The Linux kernel module buildsystem supports running an external tool
(by default, the 'sparse' tool) during the build to run additional
static checks on the source code to flag various warnings.

Tell the kernel build to run such a tool, if 'sparse' is installed.
This causes various new warnings in the build, such as:

  CHECK   /.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:73:1: warning: symbol 'afs_FreeOneToken' was not declared. Should it be static?
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:160:1: warning: symbol 'afs_IsTokenExpired' was not declared. Should it be static?
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:187:1: warning: symbol 'afs_IsTokenUsable' was not declared. Should it be static?

None cause the build to fail currently, but are just printed for
potential further investigation.

To control detecting 'sparse', add the --with-sparse configure option
and SPARSE configure variable. Default to checking if sparse is
available, and enabling it if so.

Further information on using sparse in the Linux kernel is available
in Documentation/sparse.txt in the Linux tree.

Using 'sparse' during the build was suggested by yadayada@in.ibm.com.

Change-Id: I57944d792ba1c8093196a8b335a12dfa741b119b
Reviewed-on: https://gerrit.openafs.org/13665
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/cf/linux-checks.m4
src/cf/linux-test1.m4
src/libafs/MakefileProto.LINUX.in