[meta-intel] [meta-dpdk][PATCH V2] dpdk: workaround march mismatch error
Hongxu Jia
hongxu.jia at windriver.com
Wed Oct 10 20:26:34 PDT 2018
Since commit `7f6bffb dpdk: support build with external & multilib toolchains' applied,
it added var-HOST_CC_ARCH in which has option `-march=**' to enable specific SSE for
specific arch that causing SSE mismatch error while compiling
[snip]
| recipe-sysroot-native/usr/lib/i586-wrs-linux/gcc/i586-wrs-linux/8.2.0/include/
xmmintrin.h:1232:1: error: inlining failed in call to always_inline '_mm_sfence':
target specific option mismatch
| _mm_sfence (void)
| ^~~~~~~~~~
| In file included from git/lib/librte_eal/linuxapp/eal/eal_thread.c:16:
| git/i686-native-linuxapp-gcc/include/rte_atomic.h:26:19: note: called from here
| #define rte_wmb() _mm_sfence()
| ^~~~~~~~~~~~
| git/lib/librte_eal/linuxapp/eal/eal_thread.c:155:3: note: in expansion of macro 'rte_wmb'
| rte_wmb();
[snip]
If var-DPDK_TARGET_MACHINE is `default', it mismatches with `-march=**' in
var-HOST_CC_ARCH
For qemux86-64, while var-DPDK_TARGET_MACHINE is `default', its `-march=corei7',
it mismatchies with `-march=core2' in var-HOST_CC_ARCH
[grep corei -rn mk]
mk/machine/native/rte.vars.mk:35:# so, set the compilation target to be a corei7, minimum target with SSE4.2.
mk/machine/native/rte.vars.mk:38: MACHINE_CFLAGS = -march=corei7
mk/machine/default/rte.vars.mk:30:MACHINE_CFLAGS += -march=corei7
mk/machine/wsm/rte.vars.mk:30:MACHINE_CFLAGS = -march=corei7 -maes -mpclmul
mk/machine/snb/rte.vars.mk:30:MACHINE_CFLAGS = -march=corei7-avx
mk/machine/nhm/rte.vars.mk:30:MACHINE_CFLAGS = -march=corei
[grep corei -rn mk]
For `default', its MACHINE_CFLAGS is ` -march=corei7', and set `DPDK_TARGET_MACHINE = 'corei5''
does not work, no mk/machine/corei5/rte.vars.mk to support it
Remove var-HOST_CC_ARCH from do_compile to workaround march mismatch error
Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
recipes-extended/dpdk/dpdk.inc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
index 194986b..0d4bbb1 100644
--- a/recipes-extended/dpdk/dpdk.inc
+++ b/recipes-extended/dpdk/dpdk.inc
@@ -102,18 +102,18 @@ do_compile () {
cd ${S}/${RTE_TARGET}
oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
- EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+ EXTRA_CFLAGS="${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
CROSS="${TARGET_PREFIX}" \
prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1
cd ${S}/examples/
oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
- EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+ EXTRA_CFLAGS="${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
cd ${S}/test/
oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
- EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+ EXTRA_CFLAGS="${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
CROSS="${TARGET_PREFIX}" O="${S}/test/$@/"
}
--
2.7.4
More information about the meta-intel
mailing list