]>
Commit | Line | Data |
---|---|---|
11fdf7f2 | 1 | # SPDX-License-Identifier: BSD-3-Clause |
9f95a23c | 2 | # Copyright(c) 2017-2019 Intel Corporation |
11fdf7f2 | 3 | |
9f95a23c TL |
4 | # get binutils version for the workaround of Bug 97 |
5 | if not is_windows | |
6 | ldver = run_command('ld', '-v').stdout().strip() | |
7 | if ldver.contains('2.30') and cc.has_argument('-mno-avx512f') | |
8 | machine_args += '-mno-avx512f' | |
9 | message('Binutils 2.30 detected, disabling AVX512 support as workaround for bug #97') | |
10 | endif | |
11 | if ldver.contains('2.31') and cc.has_argument('-mno-avx512f') | |
12 | machine_args += '-mno-avx512f' | |
13 | message('Binutils 2.31 detected, disabling AVX512 support as workaround for bug #249') | |
14 | endif | |
15 | endif | |
11fdf7f2 TL |
16 | |
17 | # we require SSE4.2 for DPDK | |
18 | sse_errormsg = '''SSE4.2 instruction set is required for DPDK. | |
19 | Please set the machine type to "nehalem" or "corei7" or higher value''' | |
20 | ||
9f95a23c | 21 | if cc.get_define('__SSE4_2__', args: machine_args) == '' |
11fdf7f2 TL |
22 | error(sse_errormsg) |
23 | endif | |
24 | ||
25 | base_flags = ['SSE', 'SSE2', 'SSE3','SSSE3', 'SSE4_1', 'SSE4_2'] | |
26 | foreach f:base_flags | |
27 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_' + f, 1) | |
28 | compile_time_cpuflags += ['RTE_CPUFLAG_' + f] | |
29 | endforeach | |
30 | ||
31 | dpdk_conf.set('RTE_ARCH_X86', 1) | |
9f95a23c | 32 | if dpdk_conf.get('RTE_ARCH_64') |
11fdf7f2 TL |
33 | dpdk_conf.set('RTE_ARCH_X86_64', 1) |
34 | dpdk_conf.set('RTE_ARCH', 'x86_64') | |
11fdf7f2 TL |
35 | else |
36 | dpdk_conf.set('RTE_ARCH_I686', 1) | |
37 | dpdk_conf.set('RTE_ARCH', 'i686') | |
38 | endif | |
39 | ||
9f95a23c | 40 | if cc.get_define('__AES__', args: machine_args) != '' |
11fdf7f2 TL |
41 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_AES', 1) |
42 | compile_time_cpuflags += ['RTE_CPUFLAG_AES'] | |
43 | endif | |
9f95a23c | 44 | if cc.get_define('__PCLMUL__', args: machine_args) != '' |
11fdf7f2 TL |
45 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_PCLMULQDQ', 1) |
46 | compile_time_cpuflags += ['RTE_CPUFLAG_PCLMULQDQ'] | |
47 | endif | |
9f95a23c | 48 | if cc.get_define('__AVX__', args: machine_args) != '' |
11fdf7f2 TL |
49 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX', 1) |
50 | compile_time_cpuflags += ['RTE_CPUFLAG_AVX'] | |
51 | endif | |
9f95a23c | 52 | if cc.get_define('__AVX2__', args: machine_args) != '' |
11fdf7f2 TL |
53 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX2', 1) |
54 | compile_time_cpuflags += ['RTE_CPUFLAG_AVX2'] | |
55 | endif | |
9f95a23c | 56 | if cc.get_define('__AVX512F__', args: machine_args) != '' |
11fdf7f2 TL |
57 | dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX512F', 1) |
58 | compile_time_cpuflags += ['RTE_CPUFLAG_AVX512F'] | |
59 | endif | |
60 | ||
61 | dpdk_conf.set('RTE_CACHE_LINE_SIZE', 64) |