[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] avx2 configure: Disable if static build
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH] avx2 configure: Disable if static build |
Date: |
Tue, 19 Jul 2016 20:12:53 +0100 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
* Aaron Lindsay (address@hidden) wrote:
> This avoids a segfault like the following for at least some 4.8 versions
> of gcc when configured with --static if avx2 instructions are also
> enabled:
>
> Program received signal SIGSEGV, Segmentation fault.
> buffer_find_nonzero_offset_ifunc () at ./util/cutils.c:333
> 333 {
> (gdb) bt
> #0 buffer_find_nonzero_offset_ifunc () at ./util/cutils.c:333
> #1 0x0000000000939c58 in __libc_start_main ()
> #2 0x0000000000419337 in _start ()
>
> Signed-off-by: Aaron Lindsay <address@hidden>
It does look like the simplest solution to the problem;
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Dave
> ---
> configure | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/configure b/configure
> index 5ada56d..169aa88 100755
> --- a/configure
> +++ b/configure
> @@ -1788,7 +1788,9 @@ fi
> ##########################################
> # avx2 optimization requirement check
>
> -cat > $TMPC << EOF
> +
> +if test "$static" = "no" ; then
> + cat > $TMPC << EOF
> #pragma GCC push_options
> #pragma GCC target("avx2")
> #include <cpuid.h>
> @@ -1801,12 +1803,13 @@ static void *bar_ifunc(void) {return (void*) bar;}
> int foo(void *a) __attribute__((ifunc("bar_ifunc")));
> int main(int argc, char *argv[]) { return foo(argv[0]);}
> EOF
> -if compile_object "" ; then
> - if has readelf; then
> - if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo"; then
> - avx2_opt="yes"
> - fi
> - fi
> + if compile_object "" ; then
> + if has readelf; then
> + if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo"; then
> + avx2_opt="yes"
> + fi
> + fi
> + fi
> fi
>
> #########################################
> --
> Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies,
> Inc.
> Qualcomm Technologies, Inc. is a member of the
> Code Aurora Forum, a Linux Foundation Collaborative Project.
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [PATCH v3 2/2] avx2 configure: Use primitives in test, (continued)
Re: [Qemu-devel] [PATCH v3 2/2] avx2 configure: Use primitives in test, Dr. David Alan Gilbert, 2016/07/14