cc-wrapper: warn about cross-compile only with non-default (#379593)

This commit is contained in:
Konrad
2025-03-11 20:55:13 +01:00
committed by GitHub
parent 6e17de93fb
commit aa1f3eb6fa

View File

@@ -1,15 +1,35 @@
needsTarget=true
targetValue=""
declare -i n=0
nParams=${#params[@]}
while (("$n" < "$nParams")); do
p=${params[n]}
v=${params[n + 1]:-} # handle `p` being last one
n+=1
for p in "${params[@]}"; do
case "$p" in
-target | --target=*)
-target)
if [ -z "$v" ]; then
echo "Error: -target requires an argument" >&2
exit 1
fi
needsTarget=false
echo "Warning: supplying the --target argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead." >&2
targetValue=$v
# skip parsing the value of -target
n+=1
;;
--target=*)
needsTarget=false
targetValue="${p#*=}"
;;
esac
done
if ! $needsTarget && [[ "$targetValue" != "@defaultTarget@" ]]; then
echo "Warning: supplying the --target $targetValue != @defaultTarget@ argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead." >&2
fi
if $needsTarget && [[ $0 != *cpp ]]; then
extraBefore+=(-target @defaultTarget@ @machineFlags@)
fi