seastar
seastar copied to clipboard
Can't build on ARM-based machine
Hi,
I try to build latest Seastar on AWS EC2 instance (c6gn.xlarge), which uses arm64 architecture. There're some error after configuring like: ./configure.py --mode=release --enable-dpdk
:
FAILED: _cooking/ingredient/dpdk/stamp/ingredient_dpdk-install /home/ubuntu/seastar/build/release/_cooking/ingredient/dpdk/stamp/ingredient_dpdk-install
cd /home/ubuntu/seastar/build/release/_cooking/ingredient/dpdk/build && /usr/bin/cmake -E chdir /home/ubuntu/seastar/dpdk make -j 4 "EXTRA_CFLAGS=-Wno-error -fcommon" O=/home/ubuntu/seastar/build/release/_cooking/ingredient/dpdk/build DESTDIR=/home/ubuntu/seastar/build/release/_cooking/stow/dpdk T=arm64-armv8a-linuxapp-gcc install && /usr/bin/cmake -E touch /home/ubuntu/seastar/build/release/_cooking/ingredient/dpdk/stamp/ingredient_dpdk-install
Using local configuration
cc1: error: unknown value ‘corei7’ for ‘-march’
cc1: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-r native
== Build lib
cc1: error: unknown value ‘corei7’ for ‘-march’
cc1: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-r native
== Build lib/librte_kvargs
== Build lib/librte_cfgfile
cc1: error: unknown value ‘corei7’ for ‘-march’
cc1: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-r native
cc1: error: unknown value ‘corei7’ for ‘-march’
cc1: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-r native
I'm wondering is current Seastar support on arm64 machine? or I'm missing some option in configuration list?
Thanks in advance!
Try to disable DPDK. Some glue logic is missing from the DPDK integration.
I actually need to use --dpdk-pmd
option and already build DPDK from the source of another repository. If I disable DPDK in seastar to skip the integration of DPDK, I can't use --dpdk-pmd
option. Any approach to skip integration but support --dpdk-pmd
option?
I have the same issue, and I also need the dpdk -pmd option. Have you found a way to fix the integration?
by default, dpdk uses "native". when it fails to find SSE42 support, and it uses "corei7" to enforce the SSE42 enabling. so we need to instruct the building system to use a different DPDK machine.
i think, probably, the solution is hidden in the --cflags
option. i am able to cook DPDK with configure.py
on an armv8 machine, like
$ ./configure.py --mode debug --compiler clang++-15 --c++-standard 20 \
--enable-dpdk --cflags='-march=armv8-a'