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: [email protected] <[email protected]> On Behalf Of
> [email protected]
> Sent: lundi 13 avril 2020 11:52
> To: [email protected]
> 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 (#16061): https://lists.fd.io/g/vpp-dev/message/16061
Mute This Topic: https://lists.fd.io/mt/72983203/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to