[PATCH v3 2/4] build: support function versioning for drivers
Dariusz Sosnowski
dsosnowski at nvidia.com
Thu Jun 25 15:33:08 CEST 2026
Add support for enabling function versioning
(through use_function_versioning meson variable) for drivers,
similar to libraries.
Signed-off-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
---
drivers/meson.build | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/drivers/meson.build b/drivers/meson.build
index 4d95604ecd..8f3ab490ee 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -171,6 +171,7 @@ foreach subpath:subdirs
pkgconfig_extra_libs = []
testpmd_sources = []
require_iova_in_mbuf = true
+ use_function_versioning = false
# for handling base code files which may need extra cflags
base_sources = []
base_cflags = []
@@ -273,6 +274,13 @@ foreach subpath:subdirs
endif
dpdk_conf.set(lib_name.to_upper(), 1)
+ if developer_mode and is_windows and use_function_versioning
+ message('@0@: Function versioning is not supported by Windows.'.format(name))
+ endif
+ if use_function_versioning
+ cflags += '-DRTE_USE_FUNCTION_VERSIONING'
+ endif
+
dpdk_extra_ldflags += pkgconfig_extra_libs
dpdk_headers += headers
@@ -363,7 +371,18 @@ foreach subpath:subdirs
depends: [version_map])
endif
- shared_lib = shared_library(lib_name, sources_pmd_info,
+ if not use_function_versioning or is_windows
+ # Use pre-built objects and pmdinfo sources to build shared library.
+ shared_sources = sources_pmd_info
+ else
+ # For compat we need to rebuild with RTE_BUILD_SHARED_LIB defined.
+ # Use original sources and pmdinfo sources.
+ cflags += '-DRTE_BUILD_SHARED_LIB'
+ shared_sources = sources + sources_pmd_info
+ objs = []
+ endif
+
+ shared_lib = shared_library(lib_name, shared_sources,
objects: objs,
include_directories: includes,
dependencies: shared_deps,
--
2.47.3
More information about the dev
mailing list