On Mon,  4 Nov 2019 10:11:20 +0000
Mattias Nissler <[email protected]> wrote:

> 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 <[email protected]>
> ---
>  eclass/toolchain-funcs.eclass | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)

Looks good! I'll pull it in to ::gentoo in a few days.

Thank you!

> 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
> -- 
> 2.21.0
> 


-- 

  Sergei

Reply via email to