Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Mon, 30 Sep 2019 09:00:49
Message-Id: 1569834031.60328373651331a8d1beab33f4a499e0b3ad61d7.slyfox@gentoo
commit:     60328373651331a8d1beab33f4a499e0b3ad61d7
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 08:52:04 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Sep 30 09:00:31 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60328373

flag-o-matic.eclass: fix test-flag-PROG() for CC="gcc -m64"

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 <AT> gentoo.org>

 eclass/flag-o-matic.eclass | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index 89b259cc222..f882b09d621 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -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