+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] -=-=-=-=-=-=-=-=-=-=-=-