When I trying to compile dpdk 2.2.0 without any change in source files, I encounter a error which the detailed message is listed behind.
My computer system is ubuntu 16.94 with glibc version 2.23-0ubuntu3. Also my target of dpdk configuration is x86_64-native-linuxapp-gcc.
I consider this as a glibc c bug because I can compile this target in 15.10, but in the newest ubuntu, it failed.
== Build drivers/net/i40e
== Build drivers/net/ixgbe
== Build drivers/net/null
== Build drivers/net/ring
== Build drivers/net/virtio
== Build drivers/net/vmxnet3
== Build drivers/crypto
== Build app
== Build app/test
LD test
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN2v___log_finite':
(.text+0x0): multiple definition of `_ZGVbN2v___log_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN4v___log_finite':
(.text+0x10): multiple definition of `_ZGVcN4v___log_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x10): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN4v___log_finite':
(.text+0x20): multiple definition of `_ZGVdN4v___log_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x20): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN8v___log_finite':
(.text+0x30): multiple definition of `_ZGVeN8v___log_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x30): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN4v___logf_finite':
(.text+0x40): multiple definition of `_ZGVbN4v___logf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x40): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN8v___logf_finite':
(.text+0x50): multiple definition of `_ZGVcN8v___logf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x50): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN8v___logf_finite':
(.text+0x60): multiple definition of `_ZGVdN8v___logf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x60): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN16v___logf_finite':
(.text+0x70): multiple definition of `_ZGVeN16v___logf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x70): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN2v___exp_finite':
(.text+0x80): multiple definition of `_ZGVbN2v___exp_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x80): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN4v___exp_finite':
(.text+0x90): multiple definition of `_ZGVcN4v___exp_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x90): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN4v___exp_finite':
(.text+0xa0): multiple definition of `_ZGVdN4v___exp_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xa0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN8v___exp_finite':
(.text+0xb0): multiple definition of `_ZGVeN8v___exp_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xb0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN4v___expf_finite':
(.text+0xc0): multiple definition of `_ZGVbN4v___expf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xc0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN8v___expf_finite':
(.text+0xd0): multiple definition of `_ZGVcN8v___expf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xd0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN8v___expf_finite':
(.text+0xe0): multiple definition of `_ZGVdN8v___expf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xe0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN16v___expf_finite':
(.text+0xf0): multiple definition of `_ZGVeN16v___expf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0xf0): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN2vv___pow_finite':
(.text+0x100): multiple definition of `_ZGVbN2vv___pow_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x100): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN4vv___pow_finite':
(.text+0x110): multiple definition of `_ZGVcN4vv___pow_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x110): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN4vv___pow_finite':
(.text+0x120): multiple definition of `_ZGVdN4vv___pow_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x120): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN8vv___pow_finite':
(.text+0x130): multiple definition of `_ZGVeN8vv___pow_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x130): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVbN4vv___powf_finite':
(.text+0x140): multiple definition of `_ZGVbN4vv___powf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x140): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVcN8vv___powf_finite':
(.text+0x150): multiple definition of `_ZGVcN8vv___powf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x150): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVdN8vv___powf_finite':
(.text+0x160): multiple definition of `_ZGVdN8vv___powf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x160): first defined here
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS): In function `_ZGVeN16vv___powf_finite':
(.text+0x170): multiple definition of `_ZGVeN16vv___powf_finite'
/usr/lib/x86_64-linux-gnu/libmvec_nonshared.a(svml_finite_alias.oS):(.text+0x170): first defined here
collect2: error: ld returned 1 exit status
/home/os/mtcp/dpdk-2.2.0/mk/rte.app.mk:221: recipe for target 'test' failed
make[5]: *** [test] Error 1
/home/os/mtcp/dpdk-2.2.0/mk/rte.subdir.mk:61: recipe for target 'test' failed
Do you build form upstream source or the ubunut packaged source?
Also depending on what you do you might just install it as DPDK is available in Xenial.
Since it builds in sbuild/adt/locally for X and Y for me I just gave a quick try.
# get build environment with all you need to dpdk
sudo apt install ubuntu-dev-tools build-essential
sudo apt-get build-dep dpdk
# build what we package:
pull-lp-source dpdk
./debian/rules build
# upstream 2.2 dpdk.org/ browse/ dpdk/snapshot/ dpdk-2. 2.0.tar. gz native- linuxapp- gcc config MACHINE= ).*,\1" default" ,' build/.config
wget http://
tar -xzf dpdk-2.2.0.tar.gz
cd dpdk-2.2.0
make T=x86_64-
There are some issues with gcc 5 and the native config which were fixed post 2.2, so I'd recommend for now:
sed -ri -e 's,(RTE_
make
Both work for me.
If this really is an issue we need more information why/how that is caused, because as I just shown both options seem to work for me.