> -----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.

Reply via email to