[dpdk-dev] [PATCH 1/7] build: always link-whole DPDK static libraries
Bruce Richardson
bruce.richardson at intel.com
Wed Apr 29 12:08:25 CEST 2020
To ensure all constructors are included in static build, we need to pass
the --whole-archive flag when linking, which is used with the
"link_whole" meson option. Since we use link_whole for all libs, we no
longer need to track the lib as part of the static dependency, just the
path to the headers for compiling.
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
app/test/meson.build | 2 +-
drivers/meson.build | 2 +-
examples/meson.build | 6 +++---
lib/meson.build | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/app/test/meson.build b/app/test/meson.build
index fc60acbe7..5f2c803d6 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -400,7 +400,7 @@ test_dep_objs += cc.find_library('execinfo', required: false)
link_libs = []
if get_option('default_library') == 'static'
- link_libs = dpdk_drivers
+ link_libs = dpdk_static_libraries + dpdk_drivers
endif
dpdk_test = executable('dpdk-test',
diff --git a/drivers/meson.build b/drivers/meson.build
index dc293b270..53c2ff0f3 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -196,7 +196,7 @@ foreach class:dpdk_driver_classes
shared_dep = declare_dependency(link_with: shared_lib,
include_directories: includes,
dependencies: shared_deps)
- static_dep = declare_dependency(link_with: static_lib,
+ static_dep = declare_dependency(
include_directories: includes,
dependencies: static_deps)
diff --git a/examples/meson.build b/examples/meson.build
index 1f2b6f516..ec6bd5a08 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017-2019 Intel Corporation
-driver_libs = []
+link_whole_libs = []
if get_option('default_library') == 'static'
- driver_libs = dpdk_drivers
+ link_whole_libs = dpdk_static_libraries + dpdk_drivers
endif
execinfo = cc.find_library('execinfo', required: false)
@@ -99,7 +99,7 @@ foreach example: examples
endif
executable('dpdk-' + name, sources,
include_directories: includes,
- link_whole: driver_libs,
+ link_whole: link_whole_libs,
link_args: dpdk_extra_ldflags,
c_args: cflags,
dependencies: dep_objs)
diff --git a/lib/meson.build b/lib/meson.build
index 07a65a625..44b850033 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -128,7 +128,7 @@ foreach l:libraries
dependencies: static_deps,
include_directories: includes,
install: true)
- static_dep = declare_dependency(link_with: static_lib,
+ static_dep = declare_dependency(
include_directories: includes,
dependencies: static_deps)
--
2.20.1
More information about the dev
mailing list