> -----Original Message----- > From: David Marchand <[email protected]> > Sent: Thursday, June 25, 2026 4:46 PM > To: Dariusz Sosnowski <[email protected]> > Cc: Bruce Richardson <[email protected]>; [email protected]; Yu Jiang > <[email protected]> > Subject: Re: [PATCH v3 2/4] build: support function versioning for drivers > > External email: Use caution opening links or attachments > > > On Thu, 25 Jun 2026 at 15:34, Dariusz Sosnowski <[email protected]> > wrote: > > > > Add support for enabling function versioning (through > > use_function_versioning meson variable) for drivers, similar to > > libraries. > > > > Signed-off-by: Dariusz Sosnowski <[email protected]> > > --- > > 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, > > Older meson version don't like this form: > > drivers/meson.build:381:12: ERROR: Invalid use of addition: can only > concatenate list (not "CustomTargetHolder") to list > > It seems to work with something like: > > diff --git a/drivers/meson.build b/drivers/meson.build index > 8f3ab490ee..79c215a7c8 100644 > --- a/drivers/meson.build > +++ b/drivers/meson.build > @@ -373,12 +373,12 @@ foreach subpath:subdirs > > if not use_function_versioning or is_windows > # Use pre-built objects and pmdinfo sources to build shared > library. > - shared_sources = sources_pmd_info > + 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 > + shared_sources = sources + [sources_pmd_info] > objs = [] > endif
Thank you for review. Fixed in v4.

