Bug 505
Summary: | [dpdk-20.08] meson build 32-bits failed on ubuntu20.04 | ||
---|---|---|---|
Product: | DPDK | Reporter: | xuemingx.zhang (xuemingx.zhang) |
Component: | core | Assignee: | Jerin (jerinjacobk) |
Status: | CONFIRMED --- | ||
Severity: | major | CC: | bruce.richardson, daxuex.gao, ferruh.yigit, jerinjacobk, lihongx.ma, thomas, xuemingx.zhang |
Priority: | High | ||
Version: | 20.08 | ||
Target Milestone: | 20.08 | ||
Hardware: | x86 | ||
OS: | Linux |
Description
xuemingx.zhang@intel.com
2020-07-10 09:31:27 CEST
I've indeed verified that there is a problem, but it's not a meson issue, but a clang one. I suspect if we had a 32-bit make build using clang it would show the exact same issue. Here's how I tested and the results. First a 32-bit GCC build, which works fine: $ PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig/ CFLAGS=-m32 LDFFLAGS=-m32 meson -Dexamples=l3fwd --werror 32-bit-build $ ninja -C 32-bit-build ninja: Entering directory `32-bit-build/' [1982/1982] Linking target app/test/dpdk-test then the same command just with CC=clang added gives an error. $ CC=clang PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig/ CFLAGS=-m32 LDFFLAGS=-m32 meson -Dexamples=l3fwd --werror 32-bit-build $ ninja -C 32-bit-build ninja: Entering directory `32-bit-build/' [23/1982] Compiling C object 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_trace.c.o' FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_trace.c.o clang -Ilib/76b5a35@@rte_eal@sta -Ilib -I../lib -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/linux/include -I../lib/librte_eal/linux/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O3 -include rte_config.h -Wextra -Wcast-qual -Wdeprecated -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-missing-field-initializers -Wno-pointer-to-int-cast -D_GNU_SOURCE -m32 -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -DRTE_LIBEAL_USE_GETENTROPY -DHAVE_GETOPT_H -DHAVE_GETOPT -DHAVE_GETOPT_LONG -MD -MQ 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_trace.c.o' -MF 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_trace.c.o.d' -o 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_trace.c.o' -c ../lib/librte_eal/common/eal_common_trace.c ../lib/librte_eal/common/eal_common_trace.c:160:8: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] val = __atomic_load_n(trace, __ATOMIC_ACQUIRE); ^ 1 error generated. I try use clang build dpdk, but build error, please see the error log, thanks. [DPDK version] commit 41f8e803bf65b7b45f78adb57c371ca99c3bc98f (HEAD, tag: v22.11-rc2) Author: Thomas Monjalon <thomas@monjalon.net> Date: Tue Nov 1 00:23:56 2022 +0100 version: 22.11-rc2 Signed-off-by: Thomas Monjalon <thomas@monjalon.net> [OS] Ubuntu 20.04.2 LTS/5.4.0-74-generic clang version 10.0.0 [Error log] [42/2317] Compiling C object 'lib/76b5a35@@rte_eal@sta/eal_common_rte_service.c.o' FAILED: lib/76b5a35@@rte_eal@sta/eal_common_rte_service.c.o clang -Ilib/76b5a35@@rte_eal@sta -Ilib -I../lib -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-missing-field-initializers -Wno-pointer-to-int-cast -D_GNU_SOURCE -m32 -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API '-DABI_VERSION="23.0"' -DRTE_LIBEAL_USE_GETENTROPY -DRTE_LOG_DEFAULT_LOGTYPE=lib.eal -MD -MQ 'lib/76b5a35@@rte_eal@sta/eal_common_rte_service.c.o' -MF 'lib/76b5a35@@rte_eal@sta/eal_common_rte_service.c.o.d' -o 'lib/76b5a35@@rte_eal@sta/eal_common_rte_service.c.o' -c ../lib/eal/common/rte_service.c ../lib/eal/common/rte_service.c:391:4: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] __atomic_store_n(&cs->cycles, cs->cycles + cycles, ^ ../lib/eal/common/rte_service.c:393:4: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] __atomic_store_n(&service_stats->cycles, ^ ../lib/eal/common/rte_service.c:398:3: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] __atomic_store_n(&service_stats->calls, ^ ../lib/eal/common/rte_service.c:510:3: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] __atomic_store_n(&cs->loops, cs->loops + 1, __ATOMIC_RELAXED); ^ ../lib/eal/common/rte_service.c:853:9: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] return __atomic_load_n(&cs->service_stats[service_id].calls, ^ ../lib/eal/common/rte_service.c:862:9: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] return __atomic_load_n(&cs->service_stats[service_id].cycles, ^ ../lib/eal/common/rte_service.c:837:9: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] return __atomic_load_n(&cs->loops, __ATOMIC_RELAXED); ^ ../lib/eal/common/rte_service.c:845:9: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] return __atomic_load_n(&cs->cycles, __ATOMIC_RELAXED); ^ 8 errors generated. [44/2317] Compiling C object 'lib/76b5a35@@rte_eal@sta/eal_common_eal_common_trace.c.o' FAILED: lib/76b5a35@@rte_eal@sta/eal_common_eal_common_trace.c.o clang -Ilib/76b5a35@@rte_eal@sta -Ilib -I../lib -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-missing-field-initializers -Wno-pointer-to-int-cast -D_GNU_SOURCE -m32 -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API '-DABI_VERSION="23.0"' -DRTE_LIBEAL_USE_GETENTROPY -DRTE_LOG_DEFAULT_LOGTYPE=lib.eal -MD -MQ 'lib/76b5a35@@rte_eal@sta/eal_common_eal_common_trace.c.o' -MF 'lib/76b5a35@@rte_eal@sta/eal_common_eal_common_trace.c.o.d' -o 'lib/76b5a35@@rte_eal@sta/eal_common_eal_common_trace.c.o' -c ../lib/eal/common/eal_common_trace.c ../lib/eal/common/eal_common_trace.c:144:8: error: misaligned atomic operation may incur significant performance penalty [-Werror,-Watomic-alignment] val = __atomic_load_n(t, __ATOMIC_ACQUIRE); ^ 1 error generated. [51/2317] Compiling C object 'lib/76b5a35@@rte_eal@sta/eal_common_malloc_heap.c.o' |