[dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1

Ivan Serdyuk local.tourist.kiev at gmail.com
Mon Oct 19 15:17:36 CEST 2020


Hi there.
I tried the following:

export CPPFLAGS=' -stdlib=libc++ ' CXXFLAGS=' -stdlib=libc++ '
> meson build-clang
> cd build-clang
> ninja -j 4
>

and got such issues:


> [213/2379] Compiling C object 'lib/76b5a35@@rte_bitratestats at sta
> /librte_bitratestats_rte_bitrate.c.o'.
> clang-11: warning: argument unused during compilation: '-stdlib=libc++'
> [-Wunused-command-line-argument]
> [219/2379] Compiling C object 'lib/76b5a35@@rte_cfgfile at sta
> /librte_cfgfile_rte_cfgfile.c.o'.
> clang-11: warning: argument unused during compilation: '-stdlib=libc++'
> [-Wunused-command-line-argument]
> [222/2379] Linking target lib/librte_acl.so.20.0.3.
> FAILED: lib/librte_acl.so.20.0.3
> clang  -o lib/librte_acl.so.20.0.3 'lib/76b5a35@@rte_acl at sta/librte_acl_acl_bld.c.o'
> 'lib/76b5a35@@rte_acl at sta/librte_acl_acl_gen.c.o' 'lib/76b5a35@
> @rte_acl at sta/librte_acl_acl_run_scalar.c.o' 'lib/76b5a35@@rte_acl at sta/librte_acl_rte_acl.c.o'
> 'lib/76b5a35@@rte_acl at sta/librte_acl_tb_mem.c.o' 'lib/76b5a35@@rte_acl at sta/librte_acl_acl_run_sse.c.o'
> -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group
> -Wl,-soname,librte_acl.so.20.0 -Wl,--no-as-needed -pthread -lm -ldl
> lib/librte_eal.so.20.0.3 lib/librte_kvargs.so.20.0.3
> lib/librte_telemetry.so.20.0.3 -Wl,--end-group
> -Wl,--version-script=/home/oceanfish81/dpdk-20.08/lib/librte_acl/rte_acl_version.map
> '-Wl,-rpath,$ORIGIN/'
> -Wl,-rpath-link,/home/oceanfish81/dpdk-20.08/build-clang/lib
> /usr/bin/ld: lib/76b5a35@@rte_acl at sta/librte_acl_rte_acl.c.o:(.data.rel.ro+0x18):
> undefined reference to `rte_acl_classify_avx2'
> clang-11: error: linker command failed with exit code 1 (use -v to see
> invocation)
> [225/2379] Generating bbdev.sym_chk with a meson_exe.py custom command.
> ninja: build stopped: subcommand failed.


I am using

> $ clang --version
> clang version 11.0.0 (https://github.com/llvm/llvm-project.git
> 0160ad802e899c2922bc9b29564080c22eb0908c)
> Target: x86_64-unknown-linux-gnu


I am working under Virtualbox, currently. My host CPU doesn't have any AVX
support - and there is no guest emulation support for them. Could I bypass
this somehow, while building librte, as a dependency?

Ivan


More information about the dev mailing list