flag-o-matic.eclass: fix test-flag-PROG() for CC="gcc -m64"
authorSergei Trofimovich <slyfox@gentoo.org>
Mon, 30 Sep 2019 08:52:04 +0000 (09:52 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Mon, 30 Sep 2019 09:00:31 +0000 (10:00 +0100)
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>
eclass/flag-o-matic.eclass

index 89b259cc222f584968b49fd67a3469836a37dbf2..f882b09d6219ed2cd104ce781ed67f1b7d1608e8 100644 (file)
@@ -436,11 +436,13 @@ test-flag-PROG() {
        [[ -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