bug #695706 added compiler validation via 'type -p ${CC}', but that
does not take into account possible options present in ${CC} itself:
$ type -P x86_64-pc-linux-gnu-gcc -m64; echo $?
/usr/lib/ccache/bin/x86_64-pc-linux-gnu-gcc
1
$ type -P x86_64-pc-linux-gnu-gcc ; echo $?
/usr/lib/ccache/bin/x86_64-pc-linux-gnu-gcc
0
The change picks first argument (binary name) and validates only that.
Reported-by: Pavol Cupka
Closes: https://bugs.gentoo.org/695888
Bug: https://bugs.gentoo.org/show_bug.cgi?id=695706
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
[[ -z ${comp} || -z $1 ]] && return 1
# verify selected compiler exists before using it
- comp=$(tc-get${comp})
- type -p ${comp} >/dev/null || return 1
+ comp=($(tc-get${comp}))
+ # 'comp' can already contain compiler options.
+ # 'type' needs a binary name
+ type -p ${comp[0]} >/dev/null || return 1
local cmdline=(
- ${comp}
+ "${comp[@]}"
# Clang will warn about unknown gcc flags but exit 0.
# Need -Werror to force it to exit non-zero.
-Werror