Am 19.06.2016 um 00:05 schrieb Peter Maydell:
> From: Peter Maydell <peter.mayd...@linaro.org>
> 
> The AVX2 optimization test assumes that the object format
> is ELF and the system has the readelf utility. If this isn't
> true then configure might fail or emit a warning (since in
> a pipe "foo | bar >/dev/null 2>&1" does not redirect the
> stderr of foo, only of bar). Adjust the check so that if
> we don't have readelf or don't have an ELF object then we
> just don't enable the AVX2 optimization.
> 
> Reported-by: Stefan Weil <s...@weilnetz.de>
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
> ---
>  configure | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 7beefcd..30bca55 100755
> --- a/configure
> +++ b/configure
> @@ -1792,8 +1792,10 @@ int foo(void *a) __attribute__((ifunc("bar_ifunc")));
>  int main(int argc, char *argv[]) { return foo(argv[0]);}
>  EOF
>  if compile_object "" ; then
> -    if readelf --syms $TMPO |grep "IFUNC.*foo" >/dev/null 2>&1; then
> -        avx2_opt="yes"
> +    if has readelf; then
> +        if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo"; then
> +            avx2_opt="yes"
> +        fi
>      fi
>  fi
>  
> 
You could check "has readelf" earlier and avoid the compile test
if there is no readelf (saves a little time).

The final I/O redirection is still needed (otherwise Linux users will
see the grep output).

Regards
Stefan


Reply via email to