This change does multiple things, all related to enable sparse usage as
a static analysis tool selectable from the OpenWrt configuration:
*add a KERNEL_SPARSE option in the config to add sparse to the kernel
 build (through the C=1 option usage)
*add sparse as a new host tools. It will get selected automatically when
 the above option will be enabled

Signed-off-by: Mathieu Olivari <math...@qca.qualcomm.com>
---
 config/Config-kernel.in    |    4 ++++
 include/kernel-defaults.mk |    4 ++++
 tools/Makefile             |    1 +
 tools/sparse/Makefile      |   22 ++++++++++++++++++++++
 4 files changed, 31 insertions(+)
 create mode 100644 tools/sparse/Makefile

diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index a475e9a..dd83cf9 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -144,6 +144,10 @@ config USE_RFKILL
        bool "Enable rfkill support"
        default RFKILL_SUPPORT
 
+config USE_SPARSE
+       bool "Enable sparse check during kernel build"
+       default n
+
 #
 # CGROUP support symbols
 #
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index caaa09d..322aeed 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -24,6 +24,10 @@ ifneq (,$(KERNEL_CC))
   KERNEL_MAKEOPTS += CC="$(KERNEL_CC)"
 endif
 
+ifdef CONFIG_USE_SPARSE
+  KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse
+endif
+
 export HOST_EXTRACFLAGS=-I$(STAGING_DIR_HOST)/include
 
 # defined in quilt.mk
diff --git a/tools/Makefile b/tools/Makefile
index 428cf0b..75d2b0d 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -38,6 +38,7 @@ tools-$(CONFIG_TARGET_ar71xx) += lzma-old squashfs
 tools-y += lzma squashfs4
 tools-$(BUILD_B43_TOOLS) += b43-tools
 tools-$(BUILD_PPL_CLOOG) += ppl cloog
+tools-$(CONFIG_USE_SPARSE) += sparse
 
 # builddir dependencies
 $(curdir)/bison/compile := $(curdir)/flex/install
diff --git a/tools/sparse/Makefile b/tools/sparse/Makefile
new file mode 100644
index 0000000..6cdeed5
--- /dev/null
+++ b/tools/sparse/Makefile
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2014 Qualcomm-Atheros Inc.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=sparse
+PKG_VERSION:=0.5.0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@KERNEL/software/devel/sparse/dist/
+PKG_MD5SUM:=68bc834c57836251fbee55a7707bab39
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+
+define Host/Install
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/sparse $(STAGING_DIR_HOST)/bin
+endef
+
+$(eval $(call HostBuild))
-- 
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to