+1, -march=atom is bad, you likely have newer ATOM CPU, so consider using 
-march={silvermont,goldmont,goldmont-plus}.

What exact CPU are you targeting?


— 
Damjan

> On 14 Apr 2020, at 12:13, Benoit Ganne (bganne) via lists.fd.io 
> <bganne=cisco....@lists.fd.io> wrote:
> 
> Hi,
> 
> This is a dpdk issue, not a VPP issue. However, it looks like your target 
> does not support SSE4.1 which seems to be needed by librte_acl.
> 
> ben
> 
>> -----Original Message-----
>> From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> <vpp-dev@lists.fd.io 
>> <mailto:vpp-dev@lists.fd.io>> On Behalf Of
>> mythosmonkeyk...@163.com <mailto:mythosmonkeyk...@163.com>
>> Sent: lundi 13 avril 2020 11:52
>> To: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
>> Subject: [vpp-dev] dpdk-20.02 compile error for Intel atom
>> 
>> 
>> --
>> hi all,
>>        I've added two files, content is as follows:
>> 
>> mk/machine/atom/rte. Vars. Mk
>> 
>> 
>> # SPDX-License-Identifier: BSD-3-Clause
>> # Copyright(c) 2010-2014 Intel Corporation
>> 
>> #
>> # machine:
>> #
>> #   - can define ARCH variable (overridden by cmdline value)
>> #   - can define CROSS variable (overridden by cmdline value)
>> #   - define MACHINE_CFLAGS variable (overridden by cmdline value)
>> #   - define MACHINE_LDFLAGS variable (overridden by cmdline value)
>> #   - define MACHINE_ASFLAGS variable (overridden by cmdline value)
>> #   - can define CPU_CFLAGS variable (overridden by cmdline value) that
>> #     overrides the one defined in arch.
>> #   - can define CPU_LDFLAGS variable (overridden by cmdline value) that
>> #     overrides the one defined in arch.
>> #   - can define CPU_ASFLAGS variable (overridden by cmdline value) that
>> #     overrides the one defined in arch.
>> #   - may override any previously defined variable
>> #
>> 
>> # ARCH =
>> # CROSS =
>> # MACHINE_CFLAGS =
>> # MACHINE_LDFLAGS =
>> # MACHINE_ASFLAGS =
>> # CPU_CFLAGS =
>> # CPU_LDFLAGS =
>> # CPU_ASFLAGS =
>> 
>> MACHINE_CFLAGS = -march=atom
>> 
>> # On FreeBSD systems, sometimes the correct CPU type is not picked up.
>> # To get everything to compile, we need SSE4.2 support, so check if that
>> is
>> # reported by compiler. If not, check if the CPU actually supports it, and
>> if
>> # so, set the compilation target to be a corei7, minimum target with
>> SSE4.2.
>> SSE42_SUPPORT=$(shell $(CC) -march=native -dM -E - </dev/null | grep
>> SSE4_2)
>> ifeq ($(SSE42_SUPPORT),)
>>    MACHINE_CFLAGS = -march=corei7
>> endif
>> 
>> config/defconfig_x86_64-atom-linuxapp-gcc:
>> 
>> 
>> # SPDX-License-Identifier: BSD-3-Clause
>> # Copyright(c) 2010-2014 Intel Corporation
>> 
>> #include "common_linux"
>> 
>> CONFIG_RTE_MACHINE="atom"
>> 
>> CONFIG_RTE_ARCH="x86_64"
>> CONFIG_RTE_ARCH_X86_64=y
>> CONFIG_RTE_ARCH_X86=y
>> CONFIG_RTE_ARCH_64=y
>> 
>> CONFIG_RTE_TOOLCHAIN="gcc"
>> CONFIG_RTE_TOOLCHAIN_GCC=y
>> 
>> However, I ran into the following problems while compiling:
>> make config T=x86_64-atom-linux-gcc
>> make V=1
>> 
>> The error message is as follows:
>> 
>> gcc -Wp,-MD,./.acl_run_sse.o.d.tmp  -m64 -pthread -I/home/wangj/code/dpdk-
>> 20.02/lib/librte_eal/linux/eal/include  -march=atom -
>> DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -
>> DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3  -
>> I/home/wangj/code/dpdk-20.02/build/include -DRTE_USE_FUNCTION_VERSIONING -
>> include /home/wangj/code/dpdk-20.02/build/include/rte_config.h -
>> D_GNU_SOURCE -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -
>> Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align
>> -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef
>> -Wwrite-strings -Wdeprecated -Wno-missing-field-initializers -Wno-address-
>> of-packed-member -I/home/wangj/code/dpdk-20.02/lib/librte_acl    -o
>> acl_run_sse.o -c /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.c
>> In file included from /home/wangj/code/dpdk-
>> 20.02/lib/librte_acl/acl_run_sse.c:5:0:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h: In function
>> ‘resolve_priority_sse’:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:84:4: warning:
>> implicit declaration of function ‘_mm_blendv_epi8’ [-Wimplicit-function-
>> declaration]
>>    results = _mm_blendv_epi8(results, results1, selector);
>>    ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:84:4: warning:
>> nested extern declaration of ‘_mm_blendv_epi8’ [-Wnested-externs]
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:84:12: error:
>> incompatible types when assigning to type ‘xmm_t’ from type ‘int’
>>    results = _mm_blendv_epi8(results, results1, selector);
>>            ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:85:13: error:
>> incompatible types when assigning to type ‘xmm_t’ from type ‘int’
>>    priority = _mm_blendv_epi8(priority, priority1,
>>             ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h: In function
>> ‘acl_match_check_x4’:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:136:2: warning:
>> implicit declaration of function ‘_mm_testz_si128’ [-Wimplicit-function-
>> declaration]
>>  while (!_mm_testz_si128(temp, temp)) {
>>  ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:136:2: warning:
>> nested extern declaration of ‘_mm_testz_si128’ [-Wnested-externs]
>> In file included from /home/wangj/code/dpdk-
>> 20.02/lib/librte_acl/acl_run_sse.h:6:0,
>>                 from /home/wangj/code/dpdk-
>> 20.02/lib/librte_acl/acl_run_sse.c:5:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h: In function
>> ‘transition4’:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_vect.h:76:4: error:
>> incompatible types when assigning to type ‘xmm_t’ from type ‘int’
>>  t = _##P##_blendv_epi8(quad_ofs, dfa_ofs, dfa_msk); \
>>    ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:161:2: note: in
>> expansion of macro ‘ACL_TR_CALC_ADDR’
>>  ACL_TR_CALC_ADDR(mm, 128, addr, xmm_index_mask.x, next_input,
>>  ^
>> In file included from /home/wangj/code/dpdk-
>> 20.02/lib/librte_acl/acl_run_sse.c:5:0:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h: In function
>> ‘search_sse_8’:
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:238:3: warning:
>> implicit declaration of function ‘_mm_insert_epi32’ [-Wimplicit-function-
>> declaration]
>>   input0 = _mm_insert_epi32(input0, GET_NEXT_4BYTES(parms, 1), 1);
>>   ^
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:238:3: warning:
>> nested extern declaration of ‘_mm_insert_epi32’ [-Wnested-externs]
>> /home/wangj/code/dpdk-20.02/lib/librte_acl/acl_run_sse.h:238:10: error:
>> incompatible types when assigning to type ‘xmm_t’ from type ‘int’
>>   input0 = _mm_insert_epi32(input0, GET_NEXT_4BYTES(parms, 1), 1);
>> 
>> 
> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#16062): https://lists.fd.io/g/vpp-dev/message/16062
Mute This Topic: https://lists.fd.io/mt/72983203/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to