> -----Original Message-----
> From: Bruce Richardson <bruce.richard...@intel.com>
> Sent: Monday, July 6, 2020 11:20 AM
> To: Fady Bader <f...@mellanox.com>
> Cc: dev@dpdk.org; Thomas Monjalon <tho...@monjalon.net>; Tasnim Bashar
> <tbas...@mellanox.com>; Tal Shnaiderman <tal...@mellanox.com>; Yohad Tor
> <yoh...@mellanox.com>; dmitry.kozl...@gmail.com;
> harini.ramakrish...@microsoft.com; ocard...@microsoft.com;
> pallavi.ka...@intel.com; ranjit.me...@intel.com; olivier.m...@6wind.com;
> arybche...@solarflare.com; m...@ashroe.eu; nhor...@tuxdriver.com
> Subject: Re: [dpdk-dev] [PATCH v5 1/3] eal: disable function versioning on
> Windows
> 
> On Sun, Jul 05, 2020 at 02:46:27PM +0300, Fady Bader wrote:
> > Function versioning implementation is not supported by Windows.
> > Function versioning was disabled on Windows.
> >
> > Signed-off-by: Fady Bader <f...@mellanox.com>
> > ---
> >  lib/librte_eal/include/rte_function_versioning.h | 2 +-
> >  lib/meson.build                                  | 5 +++++
> >  2 files changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/librte_eal/include/rte_function_versioning.h
> > b/lib/librte_eal/include/rte_function_versioning.h
> > index f588f2643b..9890551ba1 100644
> > --- a/lib/librte_eal/include/rte_function_versioning.h
> > +++ b/lib/librte_eal/include/rte_function_versioning.h
> > @@ -7,7 +7,7 @@
> >  #define _RTE_FUNCTION_VERSIONING_H_
> >  #include <rte_common.h>
> >
> > -#ifndef RTE_USE_FUNCTION_VERSIONING
> > +#if !defined RTE_USE_FUNCTION_VERSIONING && !defined
> > +RTE_EXEC_ENV_WINDOWS
> >  #error Use of function versioning disabled, is 
> > "use_function_versioning=true"
> in meson.build?
> >  #endif
> >
> > diff --git a/lib/meson.build b/lib/meson.build index
> > c1b9e1633f..a1ab582a51 100644
> > --- a/lib/meson.build
> > +++ b/lib/meson.build
> > @@ -107,6 +107,11 @@ foreach l:libraries
> >                     shared_dep = declare_dependency(include_directories:
> includes)
> >                     static_dep = shared_dep
> >             else
> > +                   if is_windows and use_function_versioning
> > +                           message('@0@: Function versioning is not
> supported by Windows.'
> > +                           .format(name))
> > +                           use_function_versioning = false
> > +                   endif
> >
> >                     if use_function_versioning
> >                             cflags += '-DRTE_USE_FUNCTION_VERSIONING'
> > --
> 
> I wonder if this patch can be simplified as follows.
> 
> Presumably the use of the RTE_USE_FUNCTION_VERSIONING cflag doesn't
> cause any problems building on windows, since it's basically nothing except a 
> flag
> to indicate the build is configured properly, so that block can be left 
> intact.
> Instead what is needed to be disabled is the RTE_BUILD_SHARED_LIB setting so
> that we use the static macros. Therefore, I think the same result can be got 
> by
> just changing the following line in lib/meson.build:
> 
> @@ -138,7 +138,7 @@ foreach l:libraries
>                                         include_directories: includes,
>                                         dependencies: static_deps)
> 
> -                       if not use_function_versioning
> +                       if not use_function_versioning or is_windows
>                                 # use pre-build objects to build shared lib
>                                 sources = []
>                                 objs += 
> static_lib.extract_all_objects(recursive: false)

Good point, the patch is much simpler now.
I'll send a new version soon.

> 
> Then no error message disabling is needed in windows. I also don't think a
> message about function versioning not being supported on windows is
> necessary. It's not something the user can do anything about himself anyway. 
> If
> we want such a message I think it should just be printed once at the start of 
> the
> configuration process, rather than each time we hit a versioned library.

It was added in order to avoid confusions in case Linux developers try to run 
the 
project on windows. I'll print it once.

> 
> Regards,
> /Bruce

Reply via email to