diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2022-05-26 10:02:30 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2022-05-26 10:05:02 +0000 |
commit | eb7a36e5535ff9128fb2077c7a901448c281baf9 (patch) | |
tree | b28e6fa46f68606483109770285aeb8248eb9610 /tcwg_kernel-build.sh | |
parent | cb6c92db7166e19f5587a38b59d434115f65f723 (diff) |
tcwg_kernel-build.sh: Add extra targets to LLVM
... to support using clang as HOSTCC.
Change-Id: I9d46ea6604f2c3ac48a195de8ee20f848568a3f5
Diffstat (limited to 'tcwg_kernel-build.sh')
-rwxr-xr-x | tcwg_kernel-build.sh | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/tcwg_kernel-build.sh b/tcwg_kernel-build.sh index 94ff42a1..c8c7ac47 100755 --- a/tcwg_kernel-build.sh +++ b/tcwg_kernel-build.sh @@ -65,7 +65,7 @@ case "${rr[mode]}" in case "$(print_single_updated_component)" in binutils) default_start_at="build_abe-binutils" ;; gcc) default_start_at="build_abe-stage1" ;; - llvm) default_start_at="build_llvm" ;; + llvm) default_start_at="build_kernel_llvm" ;; linux) default_start_at="build_linux" ;; qemu) default_start_at="build_abe-qemu" ;; *) assert false ;; @@ -83,6 +83,30 @@ fi run_step_init "$start_at" "$finish_at" "${rr[top_artifacts]}" "$verbose" +# Build LLVM for building Linux kernel +build_kernel_llvm () +{ + ( + set -euf -o pipefail + + local host target extra_targets="" + + host=$(print_llvm_target native) + target=$(print_llvm_target ${rr[target]}) + + if [ x"$target" != x"$host" ]; then + # We need $host target for HOSTCC + extra_targets="$extra_targets;$host" + fi + if [ x"$target" = x"AArch64" ]; then + # We need 32-bit ARM target to compile vdso32 + extra_targets="$extra_targets;ARM" + fi + + build_llvm false "$extra_targets" + ) +} + # Build Linux kernel build_linux_1 () { @@ -296,7 +320,7 @@ case "${rr[toolchain]}" in run_step skip_on_fail -5 build_abe stage1 ;; llvm) - run_step skip_on_fail -5 build_llvm + run_step skip_on_fail -5 build_kernel_llvm ;; esac run_step skip_on_fail -2 build_abe qemu |