I ran into the build issue mentioned in the first commit, because using an option like LLVM=-15 is a documented way to build [1], but only some of the LLVM tools defined in tools/ support this.
After fixing that, a lot of other tidyups fell out. I didn't go too far, for example some selftests include tools/testing/selftests/lib.mk which reimplements some of the LLVM_SUFFIX stuff, but other selftests include tools/scripts/Makefile.include and I stopped before touching the former. Some other non build scripts hard code toolchains and I didn't touch those either, this change is only focused on things that already include Makefile.include. [1]: Documentation/kbuild/llvm.rst Signed-off-by: James Clark <[email protected]> --- James Clark (6): tools/build: Allow versioning of all LLVM tools defined in Makefile.include tools/build: Indent if else blocks selftests: Remove unused LLD variable tools/build: Allow versioning LLVM readelf tools/build: selftests: Allow versioning LLVM lld tools/build: selftests: Remove some duplicate toolchain definitions tools/bpf/resolve_btfids/Makefile | 3 -- tools/lib/api/Makefile | 4 -- tools/lib/bpf/Makefile | 8 ++-- tools/lib/subcmd/Makefile | 4 -- tools/lib/symbol/Makefile | 4 -- tools/perf/Makefile.perf | 7 ---- tools/scripts/Makefile.include | 77 ++++++++++++++++++++---------------- tools/testing/selftests/bpf/Makefile | 9 ++--- tools/testing/selftests/hid/Makefile | 7 ---- 9 files changed, 50 insertions(+), 73 deletions(-) --- base-commit: 09d355618f7ccc27ffc7fc668b2e232872962079 change-id: 20260511-james-perf-llvm-version-43ab1cb5bc7d Best regards, -- James Clark <[email protected]>

