From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 01/22] kbuild: add support for clang-analyzer with scan-build
Date: Thu, 13 Mar 2025 08:34:24 +0100 [thread overview]
Message-ID: <20250313073445.764875-2-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20250313073445.764875-1-a.fatoum@pengutronix.de>
scan-build will set a number of environment variables, including CC and
CCC_ANALYZER_HTML and the build command passed as its argument.
When that build system uses CC as a compiler, scan-build will capture
the arguments used and run clang-analyzer on all these files in addition
to the normal compiler.
This doesn't current work with barebox as barebox' Kbuild ignores the CC
variable in the environment. Fix this by collecting into ENVCC the CC
environment variable and using it to override CC whenever it is set in
addition to CCC_ANALYZER_HTML.
Example usage:
export LLVM=-19
scan-build${LLVM} --use-cc=clang${LLVM} make
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
Makefile | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/Makefile b/Makefile
index f3e5b44d5566..9ef07ba34457 100644
--- a/Makefile
+++ b/Makefile
@@ -410,6 +410,8 @@ KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
+ENVCC := $(CC)
+
# Make variables (CC, etc...)
CPP = $(CC) -E
ifneq ($(LLVM),)
@@ -574,6 +576,13 @@ ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
include $(srctree)/scripts/Makefile.clang
endif
+# allow scan-build to override the used compiler
+ifneq ($(CCC_ANALYZER_HTML),)
+ifneq ($(ENVCC),)
+CC = $(ENVCC)
+endif
+endif
+
ifdef config-build
# ===========================================================================
# *config targets only - make sure prerequisites are updated, and descend
--
2.39.5
next prev parent reply other threads:[~2025-03-13 7:50 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-13 7:34 [PATCH 00/22] " Ahmad Fatoum
2025-03-13 7:34 ` Ahmad Fatoum [this message]
2025-03-13 7:34 ` [PATCH 02/22] soc: ti: k3-navss-ringacc: fix COMPILE_TEST link error Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 03/22] treewide: fix missing headers in sandbox allyesconfig Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 04/22] drivers: don't cast pointer directly to enum Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 05/22] firmware: arm_scmi: smc: compile only for ARM Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 06/22] video: stm32-ltdc: fix printing uninitialized variable Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 07/22] usb: core: remove unnecessary comparison Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 08/22] ddr_spd: fix always true sub-condition Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 09/22] hush: fix make_string behavior on empty strings Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 10/22] nvmem: fix clang-analyzer false-positive use of uninitialized value Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 11/22] string: initialize string array in string selftest Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 12/22] commands: ubsan: hide zero division in test Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 13/22] crypto: ecc: fix clang-analyzer warning about NULL dereference Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 14/22] mci_spi: fix possible use of uninitialized variable Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 15/22] mtd: have mtd_read populate retlen always Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 16/22] of: fdt: silence possible static analyzer false positive Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 17/22] ubi: workaround zero division on malformed input in ubi_assert Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 18/22] video: Rockchip: fix zero division in rk3588_calc_cru_cfg Ahmad Fatoum
2025-03-13 8:09 ` [PATCH] fixup! " Ahmad Fatoum
2025-03-14 16:03 ` [PATCH 18/22] " Sascha Hauer
2025-03-13 7:34 ` [PATCH 19/22] lib: scatterlist: don't assert last element for empty sglist Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 20/22] scripts: omap3-usb-loader: fix clang-analyzer false-positive Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 21/22] clk: analogbits: wrpll-cln28hpc: bail out before zero division Ahmad Fatoum
2025-03-13 7:34 ` [PATCH 22/22] watchdog: stm32_iwdg: " Ahmad Fatoum
2025-03-14 16:04 ` [PATCH 00/22] add support for clang-analyzer with scan-build Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250313073445.764875-2-a.fatoum@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox