summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Day <timday@amazon.com>2025-06-21 17:36:20 -0400
committerTimothy Day <timday@amazon.com>2025-06-22 17:00:24 -0400
commit255b06005dedd68f7a4cc2ccde3857f4456ecf12 (patch)
tree257fa1c9f80f15caa9420f22175b13bc0e831f0b
parenta632994d58b0745bc2b3e9c4f7aff4b86f7f98d3 (diff)
Improve LLVM support
Enable $CC to be passed on the build-test-kernel CLI. Properly set the $LLVM environment variable when using Clang. This ensures that the full LLVM toolchain is used (rather than just the compiler). Signed-off-by: Timothy Day <timday@amazon.com>
-rwxr-xr-xbuild-test-kernel11
-rw-r--r--tests/prelude.sh2
2 files changed, 11 insertions, 2 deletions
diff --git a/build-test-kernel b/build-test-kernel
index cd4ff25..b34a20d 100755
--- a/build-test-kernel
+++ b/build-test-kernel
@@ -18,7 +18,7 @@ checkdep bc
ktest_njobs=$(nproc)
ktest_precise=false
-ktest_compiler=gcc
+ktest_compiler="${CC:-gcc}"
ktest_skip_kernel_config=false
COVERAGE="" # doing code coverage?
@@ -122,6 +122,14 @@ run_ktest()
"$KTEST" "$arg" $KTESTARGS "$@"
}
+map_clang_version() {
+ case "$ktest_compiler" in
+ clang) echo "1" ;;
+ clang-[0-9]*) echo "-${ktest_compiler#clang-}" ;;
+ *) echo "" ;;
+ esac
+}
+
do_make()
{
if [[ -n $CROSS_COMPILE ]]; then
@@ -132,6 +140,7 @@ do_make()
make --jobs="$ktest_njobs" \
--directory="$ktest_kernel_source" \
CC="$ktest_compiler" \
+ LLVM="$(map_clang_version)" \
O="$ktest_kernel_build" \
INSTALL_MOD_PATH="$ktest_kernel_binary" \
"${ktest_kernel_make_append[@]}" \
diff --git a/tests/prelude.sh b/tests/prelude.sh
index a2b3316..ced9770 100644
--- a/tests/prelude.sh
+++ b/tests/prelude.sh
@@ -34,7 +34,7 @@ if [[ ! -v ktest_cpus ]]; then
ktest_kernel_config_require=()
ktest_kernel_config_require_soft=()
ktest_qemu_append=()
- ktest_compiler=gcc
+ ktest_compiler="${CC:-gcc}"
ktest_allow_taint=false
ktest_tests_unknown=false