Bug 505 - [dpdk-20.08] meson build 32-bits failed on ubuntu20.04
Summary: [dpdk-20.08] meson build 32-bits failed on ubuntu20.04
Status: CONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: core (show other bugs)
Version: 20.08
Hardware: x86 Linux
: High major
Target Milestone: 20.08
Assignee: Jerin
URL:
Depends on:
Blocks:
 
Reported: 2020-07-10 09:31 CEST by xuemingx.zhang@intel.com
Modified: 2022-11-11 10:44 CET (History)
7 users (show)



Attachments

Description xuemingx.zhang@intel.com 2020-07-10 09:31:27 CEST
•DPDK version: 
commit 2e40fdc2d305e6864c8840a0985018edc94562d5 
Author: Karra Satwik <kaara.satwik@chelsio.com>
Date:   Sat Jun 13 03:40:20 2020 +0530                                       net/cxgbe: always enable HASH filter support

•OS:
Linux ub2004-i686 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
•Compiler:
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0 
clang version 10.0.0-4ubuntu1

Test Setup:
export CFLAGS="-m32"
export PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig"
./devtools/test-meson-builds.sh


Show the output from the previous commands:
ninja -C ./build-clang-static
ninja: Entering directory `./build-clang-static'
[36/1953] 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_telemetry/../librte_metrics -I../lib/librte_telemetry/../librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O2 -g -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.
[41/1953] Compiling C object 'lib/76b5a35@@rte_eal@sta/librte_eal_common_eal_common_options.c.o'.
Comment 1 Bruce Richardson 2020-07-10 11:05:25 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.
Comment 2 gaodaxue 2022-11-11 10:44:20 CET
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'

Note You need to log in before you can comment on or make changes to this bug.