12b0e8ac74
If -target is explicitly passed to clang, we shouldn't pass our -march value for the default target, because it probably won't exist for the target being used. Up until now, clang has been lenient with this, but it's a hard error with clang 17, so since gcc.arch is always set on aarch64, fixing this is a hard requirement for upgrading our default clang to 17. Before (with clang 17 on aarch64-linux): $ clang -target bpf -c -o /dev/null test.bpf.c clang: warning: ignoring '-fstack-protector-strong' option as it is not currently supported for target 'bpf' [-Woption-ignored] clang: error: unsupported option '-march=' for target 'bpf' clang: warning: argument unused during compilation: '--gcc-toolchain=/nix/store/cngak08nb1yk44gnjipv5rg1ahh1xkax-gcc-13.2.0' [-Wunused-command-line-argument] After: $ clang -target bpf -c -o /dev/null test.bpf.c clang: warning: ignoring '-fstack-protector-strong' option as it is not currently supported for target 'bpf' [-Woption-ignored] clang: warning: argument unused during compilation: '--gcc-toolchain=/nix/store/cngak08nb1yk44gnjipv5rg1ahh1xkax-gcc-13.2.0' [-Wunused-command-line-argument]
11 lines
201 B
Bash
11 lines
201 B
Bash
needsTarget=true
|
|
|
|
for p in "${params[@]}"; do
|
|
case "$p" in
|
|
-target | --target=*) needsTarget=false ;;
|
|
esac
|
|
done
|
|
|
|
if $needsTarget; then
|
|
extraBefore+=(-target @defaultTarget@ @march@)
|
|
fi
|