commit: 3ef6b33339da7bb04afd77e1bc5db011b02d658a Author: Mattias Nissler <mnissler <AT> chromium <DOT> org> AuthorDate: Mon Nov 4 10:11:20 2019 +0000 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> CommitDate: Wed Nov 6 22:44:33 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3ef6b333
toolchain-funcs.eclass: fix tc-cpp-is-true() to work with clang Clang's preprocessor likes to output a leading newline, which makes the comparison always fail. GCC generates additional output with certain flags (e.g. -ggdb3) as well. Hence, switch the test to trigger a preprocessor error when the condition is not true and examine the exit code. Bug: https://bugs.gentoo.org/698912 Signed-off-by: Mattias Nissler <mnissler <AT> chromium.org> Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> eclass/toolchain-funcs.eclass | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index e358d484417..1bc6cbbc108 100644 --- a/eclass/toolchain-funcs.eclass +++ b/eclass/toolchain-funcs.eclass @@ -207,14 +207,13 @@ tc-cpp-is-true() { local CONDITION=${1} shift - local RESULT=$($(tc-getTARGET_CPP) "${@}" -P - <<-EOF 2>/dev/null - #if ${CONDITION} - true - #endif - EOF - ) - - [[ ${RESULT} == true ]] + $(tc-getTARGET_CPP) "${@}" -P - <<-EOF >/dev/null 2>&1 + #if ${CONDITION} + true + #else + #error false + #endif + EOF } # @FUNCTION: tc-detect-is-softfloat