From 8d53e9f3c6001dcb2865f6e894da5b54e1418f88 Mon Sep 17 00:00:00 2001 From: Christian Ehrhardt Date: Thu, 4 Jul 2019 10:40:06 +0200 Subject: New upstream version 18.11.2 Change-Id: I23eb4f9179abf1f9c659891f8fddb27ee68ad26b Signed-off-by: Christian Ehrhardt --- config/arm/meson.build | 10 +++++++--- config/meson.build | 7 +++++++ config/x86/meson.build | 21 +++++++++++---------- 3 files changed, 25 insertions(+), 13 deletions(-) (limited to 'config') diff --git a/config/arm/meson.build b/config/arm/meson.build index dae55d6b..9feb54f2 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -6,6 +6,7 @@ march_opt = '-march=@0@'.format(machine) arm_force_native_march = false +arm_force_default_march = (machine == 'default') machine_args_generic = [ ['default', ['-march=armv8-a+crc+crypto']], @@ -105,7 +106,10 @@ else cmd_generic = ['generic', '', '', 'default', ''] cmd_output = cmd_generic # Set generic by default machine_args = [] # Clear previous machine args - if not meson.is_cross_build() + if arm_force_default_march and not meson.is_cross_build() + machine = impl_generic + impl_pn = 'default' + elif not meson.is_cross_build() # The script returns ['Implementer', 'Variant', 'Architecture', # 'Primary Part number', 'Revision'] detect_vendor = find_program(join_paths( @@ -115,8 +119,8 @@ else cmd_output = cmd.stdout().to_lower().strip().split(' ') endif # Set to generic if variable is not found - machine = get_variable('impl_' + cmd_output[0], 'generic') - if machine == 'generic' + machine = get_variable('impl_' + cmd_output[0], ['generic']) + if machine[0] == 'generic' machine = impl_generic cmd_output = cmd_generic endif diff --git a/config/meson.build b/config/meson.build index db32499b..80d25382 100644 --- a/config/meson.build +++ b/config/meson.build @@ -1,6 +1,13 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +# driver .so files often depend upon the bus drivers for their connect bus, +# e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need +# to be in the library path, so symlink the drivers from the main lib directory. +meson.add_install_script('../buildtools/symlink-drivers-solibs.sh', + get_option('libdir'), + pmd_subdir_opt) + # set the machine type and cflags for it if meson.is_cross_build() machine = host_machine.cpu() diff --git a/config/x86/meson.build b/config/x86/meson.build index 9e5952aa..ae92f86a 100644 --- a/config/x86/meson.build +++ b/config/x86/meson.build @@ -1,23 +1,24 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -# for checking defines we need to use the correct compiler flags -march_opt = ['-march=@0@'.format(machine)] - # get binutils version for the workaround of Bug 97 ldver = run_command('ld', '-v').stdout().strip() if ldver.contains('2.30') if cc.has_argument('-mno-avx512f') - march_opt += '-mno-avx512f' + machine_args += '-mno-avx512f' message('Binutils 2.30 detected, disabling AVX512 support as workaround for bug #97') endif + if ldver.contains('2.31') and cc.has_argument('-mno-avx512f') + machine_args += '-mno-avx512f' + message('Binutils 2.31 detected, disabling AVX512 support as workaround for bug #249') + endif endif # we require SSE4.2 for DPDK sse_errormsg = '''SSE4.2 instruction set is required for DPDK. Please set the machine type to "nehalem" or "corei7" or higher value''' -if cc.get_define('__SSE4_2__', args: march_opt) == '' +if cc.get_define('__SSE4_2__', args: machine_args) == '' error(sse_errormsg) endif @@ -37,23 +38,23 @@ else dpdk_conf.set('RTE_ARCH', 'i686') endif -if cc.get_define('__AES__', args: march_opt) != '' +if cc.get_define('__AES__', args: machine_args) != '' dpdk_conf.set('RTE_MACHINE_CPUFLAG_AES', 1) compile_time_cpuflags += ['RTE_CPUFLAG_AES'] endif -if cc.get_define('__PCLMUL__', args: march_opt) != '' +if cc.get_define('__PCLMUL__', args: machine_args) != '' dpdk_conf.set('RTE_MACHINE_CPUFLAG_PCLMULQDQ', 1) compile_time_cpuflags += ['RTE_CPUFLAG_PCLMULQDQ'] endif -if cc.get_define('__AVX__', args: march_opt) != '' +if cc.get_define('__AVX__', args: machine_args) != '' dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX', 1) compile_time_cpuflags += ['RTE_CPUFLAG_AVX'] endif -if cc.get_define('__AVX2__', args: march_opt) != '' +if cc.get_define('__AVX2__', args: machine_args) != '' dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX2', 1) compile_time_cpuflags += ['RTE_CPUFLAG_AVX2'] endif -if cc.get_define('__AVX512F__', args: march_opt) != '' +if cc.get_define('__AVX512F__', args: machine_args) != '' dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX512F', 1) compile_time_cpuflags += ['RTE_CPUFLAG_AVX512F'] endif -- cgit 1.2.3-korg