[dpdk-dev] [PATCH] build: check functionality rather than binutils version
Thomas Monjalon
thomas at monjalon.net
Wed Jun 17 13:45:57 CEST 2020
17/06/2020 12:40, Bruce Richardson:
> Rather than checking the binutils version number, which can lead to
> unnecessary disabling of AVX512 if fixes have been backported to distro
> versions, we can instead check the output of "as" from binutils to see if
> it is correct.
>
> These checks use the minimal assembly reproduction code posted to the
> public bug tracker for gcc/binutils for those issues [1][2]. If the
> binutils bug is present, the instruction parameters - specifically the
> displacement parameter - will be different in the disassembled output
> compared to the input. Therefore each check involves assembling a single
> instruction and disassembling it again, checking that the two match.
Whaoh, that's a very specific optimization :)
Which distro is affected (backported binutils fix)?
> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028
> [2] https://sourceware.org/bugzilla/show_bug.cgi?id=23465
>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
> --- a/buildtools/meson.build
> +++ b/buildtools/meson.build
> -subdir('pmdinfogen')
Why removing pmdinfogen?
> --- a/meson.build
> +++ b/meson.build
> +# do configuration and get tool paths
> +subdir('buildtools')
> subdir('config')
>
> # build libs and drivers
> -subdir('buildtools')
> +subdir('buildtools/pmdinfogen')
Is it related to binutils check?
[...]
> - ldver = run_command('ld', '-v').stdout().strip()
> - if ldver.contains('2.30') and cc.has_argument('-mno-avx512f')
> + as_ok = run_command(binutils_avx512_check)
> + if as_ok.returncode() != 0 and cc.has_argument('-mno-avx512f')
"as_ok" is difficult to understand.
I would suggest "binutils_avx512_ok".
> + message('Binutils error with AVX512 assembly, disabling AVX512 support')
It looks like something which should be part of meson itself.
More information about the dev
mailing list