Package: dpdk / 18.11.2-4

Metadata

Package Version Patches format
dpdk 18.11.2-4 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0004 build bump minimum Meson version to 0.47.1.patch | (download)

drivers/meson.build | 5 1 + 4 - 0 !
kernel/linux/meson.build | 6 1 + 5 - 0 !
meson.build | 35 15 + 20 - 0 !
3 files changed, 17 insertions(+), 29 deletions(-)

 bump minimum meson version to 0.47.1
0005 build use dependency instead of find_library.patch | (download)

drivers/compress/zlib/meson.build | 1 0 + 1 - 0 !
drivers/crypto/ccp/meson.build | 1 0 + 1 - 0 !
drivers/crypto/openssl/meson.build | 1 0 + 1 - 0 !
drivers/crypto/qat/meson.build | 1 0 + 1 - 0 !
drivers/meson.build | 9 5 + 4 - 0 !
drivers/net/bnx2x/meson.build | 2 1 + 1 - 0 !
drivers/net/mlx4/meson.build | 6 3 + 3 - 0 !
drivers/net/mlx5/meson.build | 6 3 + 3 - 0 !
drivers/net/pcap/meson.build | 5 2 + 3 - 0 !
lib/librte_bpf/meson.build | 4 2 + 2 - 0 !
lib/librte_telemetry/meson.build | 2 1 + 1 - 0 !
11 files changed, 17 insertions(+), 21 deletions(-)

 use dependency() instead of find_library()
 Whenever possible (if the library ships a pkg-config file) use meson's
 dependency() function to look for it, as it will automatically add it
 to the Requires.private list if needed, to allow for static builds to
 succeed for reverse dependencies of DPDK. Otherwise the recursive
 dependencies are not parsed, and users doing static builds have to
 resolve them manually by themselves.
 When using this API avoid additional checks that are superfluous and
 take extra time, and avoid adding the linker flag manually which causes
 it to be duplicated.
0006 build reorder libraries and build eal before cmdline.patch | (download)

lib/meson.build | 5 3 + 2 - 0 !
1 file changed, 3 insertions(+), 2 deletions(-)

 reorder libraries and build eal before cmdline
 Most libraries and PMDs depend on eal, and eal depends only on kvargs,
 so reorder the list in Meson to reflect this and take advantage of this
 dependency chain.
0007 build use dependency for libbsd instead of manual ap.patch | (download)

config/meson.build | 10 5 + 5 - 0 !
lib/librte_eal/meson.build | 3 3 + 0 - 0 !
2 files changed, 8 insertions(+), 5 deletions(-)

 use dependency() for libbsd instead of manual append to ldflags
 Move libbsd inclusion to librte_eal, so that all other libraries and
 PMDs will inherit it.
avoid as needed as it causes overlinking.patch | (download)

config/meson.build | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 [patch] build: avoid --as-needed as it causes overlinking

A while ago telemetry was added in 57ae0ec6 and it also added as-needed
to config/meson.build. This seems no more needed these days as due to other
build changes the ordering in buildlogs is:
  [...] -lrte_telemetry [...] -Wl,--no-as-needed [...]
Which means telemetry no more benefits from --no-as-needed anyway.

Overlinking problems get triggered by the meson generated pkgconfig which
will have:
   [...] -Wl,--no-as-needed <somelibsusedbydpdk>
This will overlink <somelibs> and in addition anything that follows
as it also doesn't wrap back to --as-needed. So if a projects includes
dpdk libs + <other> it will also consider <other> with --no-as-needed.

Fixes: https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1841759

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>