vcpkg/ports/dpdk/fix-dependencies.patch

66 строки
2.1 KiB
Diff

diff --git a/config/meson.build b/config/meson.build
index 0dde249..64f7d1c 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -181,12 +181,10 @@ if meson.is_cross_build() and not meson.get_cross_property('numa', true)
find_libnuma = false
endif
if find_libnuma
- numa_dep = cc.find_library('numa', required: false)
- if numa_dep.found() and cc.has_header('numaif.h')
+ numa_dep = dependency('numa', method: 'pkg-config')
+ if numa_dep.found()
dpdk_conf.set10('RTE_HAS_LIBNUMA', true)
has_libnuma = 1
- add_project_link_arguments('-lnuma', language: 'c')
- dpdk_extra_ldflags += '-lnuma'
endif
endif
@@ -211,8 +209,6 @@ if libarchive.found()
# Push libarchive link dependency at the project level to support
# statically linking dpdk apps. Details at:
# https://inbox.dpdk.org/dev/20210605004024.660267a1@sovereign/
- add_project_link_arguments('-larchive', language: 'c')
- dpdk_extra_ldflags += '-larchive'
endif
# check for libbsd
diff --git a/lib/eal/linux/meson.build b/lib/eal/linux/meson.build
index 65f2ac6..3e023f8 100644
--- a/lib/eal/linux/meson.build
+++ b/lib/eal/linux/meson.build
@@ -23,5 +23,6 @@ sources += files(
deps += ['kvargs', 'telemetry']
if has_libnuma == 1
+ ext_deps += numa_dep
dpdk_conf.set10('RTE_EAL_NUMA_AWARE_HUGEPAGES', true)
endif
diff --git a/lib/eal/meson.build b/lib/eal/meson.build
index 056beb9..04bd3fe 100644
--- a/lib/eal/meson.build
+++ b/lib/eal/meson.build
@@ -29,6 +29,9 @@ endif
if dpdk_conf.has('RTE_USE_LIBBSD')
ext_deps += libbsd
endif
+if dpdk_conf.has('RTE_HAS_LIBARCHIVE')
+ ext_deps += libarchive
+endif
if cc.has_function('getentropy', prefix : '#include <unistd.h>')
cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
endif
diff --git a/lib/vhost/meson.build b/lib/vhost/meson.build
index bc72720..83970c7 100644
--- a/lib/vhost/meson.build
+++ b/lib/vhost/meson.build
@@ -6,6 +6,7 @@ if not is_linux
reason = 'only supported on Linux'
endif
if has_libnuma == 1
+ ext_deps += numa_dep
dpdk_conf.set10('RTE_LIBRTE_VHOST_NUMA', true)
endif
if (toolchain == 'gcc' and cc.version().version_compare('>=8.3.0'))