Logo given to me by my friend, Silas
A static analysis tool for the Kconfig language.
Detect dead code, select-visible misuse, and more.
Assuming you have Rust, and OpenSSL installed:
# clone this repo
git clone https://github.com/julianbraha/kconfirm.git
cd kconfirm
# compile
cargo build --release -p kconfirm-cli
# run (for linux):
./target/release/kconfirm-cli --linux-dir-path RELATIVE_PATH_TO_LINUX_SOURCE
# run (for coreboot):
./target/release/kconfirm-cli --coreboot-dir-path RELATIVE_PATH_TO_COREBOOT_SOURCE
To enable the check for dead links in the Kconfig help texts:
# NOTE: this is very slow! It will attempt to visit every link that it finds!
./target/release/kconfirm-cli --linux-dir-path RELATIVE_PATH_TO_LINUX_SOURCE --check-dead-links
2026-03-23 "drm: fix dead default for DRM_TTM_KUNIT_TEST"
2026-03-23 "s390: fix dead defaults for S390_MODULES_SANITY_TEST and S390_UNWIND_SELFTEST"
2026-03-22 "soc: aspeed: cleanup dead default for ASPEED_SOCINFO"
2026-05-31 "x86/cpu: cleanup duplicate dependencies in Kconfig"
2026-05-03 "riscv: replace select with dependency for visible RELOCATABLE"
2026-05-31 "x86/cpu: cleanup duplicate dependencies in Kconfig"
2026-04-18 "cpufreq: clean up dead dependencies on X86 in Kconfig"
2026-04-02 "stmmac: cleanup dead dependencies on STMMAC_PLATFORM and STMMAC_ETH in Kconfig"
2026-03-31 "cpufreq: clean up dead code in Kconfig"
2026-03-31 "soc: apple: cleanup dead code in kconfig"
2026-03-31 "mm/thp: dead code cleanup in Kconfig"
2026-03-31 "media: dvb: cleanup dead DVB_USB code in Kconfig"
2026-03-31 "keys: cleanup dead code in Kconfig for FIPS_SIGNATURE_SELFTEST"
2026-03-31 "nvmem: cleanup dead code in Kconfig"
2026-03-30 "remoteproc: dead code cleanup in Kconfig for STM32_RPROC"
2026-03-30 "pci: dead code cleanup in Kconfig"
2026-03-30 "ppp: dead code cleanup in Kconfig"
2026-03-29 "riscv: dead code cleanup in kconfig for RISCV_PROBE_VECTOR_UNALIGNED_ACCESS"
2026-03-29 "net: microchip: dead code cleanup in kconfig for FDMA"
2026-03-29 "ARM: omap2: dead code cleanup in kconfig for ARCH_OMAP4"
2026-03-29 "media: dead code cleanup in kconfig for VIDEO_SOLO6X10"
2026-04-15 "powerpc: fix dead default for SYS_L3_SIZE"
2026-04-12 "mainboard/opencellular/elgon/Kconfig: fix dead default for FMDFILE"
2026-04-12 "payloads/Kconfig: fix dead default for PAYLOAD_FIT_SUPPORT"
2026-05-26 "config: remove duplicate dependency on SELINUX for CHCON"
- Yann Prono "Mcdostone" for building the nom-kconfig crate for parsing
kconfig, and continuing to support it. - Necip Fazil Yildiran, Jeho Oh, and Paul Gazzillo for introducing me to the unmet dependency bug, and for their mentorship.
