On Wed, Nov 02, 2022 at 01:29:49PM +0100, Thomas Monjalon wrote:
> 02/11/2022 13:10, Bruce Richardson:
> > On Sun, Oct 30, 2022 at 09:27:21AM +0100, Thomas Monjalon wrote:
> > > If the dependency common/mlx5 is explicitly disabled,
> > > but net/mlx5 is not explicitly disabled,
> > > Meson will read the full recipe of net/mlx5
> > > and will fail when accessing a variable from common/mlx5:
> > > drivers/net/mlx5/meson.build:76:4: ERROR: Unknown variable "mlx5_config".
> > > 
> > > The solution is to stop parsing net/mlx5 if common/mlx5 is disabled.
> > > The deps array must be defined before stopping, in order to automatically
> > > disable the build of net/mlx5 and print the reason.
> > > 
> > > The same protection is applied to other mlx5 drivers,
> > > so it will allow using the variable mlx5_config in future.
> > > 
> > > Fixes: 22681deead3e ("net/mlx5/hws: enable hardware steering")
> > > 
> > > Reported-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
> > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net>
> > > Tested-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
> > > ---
> > >  drivers/compress/mlx5/meson.build | 5 +++++
> > >  drivers/crypto/mlx5/meson.build   | 5 +++++
> > >  drivers/net/mlx5/meson.build      | 5 +++++
> > >  drivers/regex/mlx5/meson.build    | 5 +++++
> > >  drivers/vdpa/mlx5/meson.build     | 5 +++++
> > >  5 files changed, 25 insertions(+)
> > > 
> > > diff --git a/drivers/compress/mlx5/meson.build 
> > > b/drivers/compress/mlx5/meson.build
> > > index 7aac329986..49ce3aff46 100644
> > > --- a/drivers/compress/mlx5/meson.build
> > > +++ b/drivers/compress/mlx5/meson.build
> > > @@ -9,6 +9,11 @@ endif
> > >  
> > >  fmt_name = 'mlx5_compress'
> > >  deps += ['common_mlx5', 'eal', 'compressdev']
> > > +if not ('mlx5' in common_drivers)
> > 
> > While this is fine as-is, I think the more usual way for checking the
> > presence of a component in DPDK is to check dpdk_conf. In this case the
> > check would be "if not dpdk_conf.has('RTE_COMMON_MLX5')". You may want to
> > consider using that for consistency.
> 
> Yes, I've forgotten this:
> 
>       lib_name = '_'.join(['rte', class, name])
>       dpdk_conf.set(lib_name.to_upper(), 1)
> 
> Then what is the usage of this?
> 
>       set_variable(class + '_drivers', enabled_drivers)
> 
That is used for the summary printout at the end, so we can list the
drivers enabled.

The approach using the common_drivers works fine for this patch, so let's
keep it, since it's merged. I was just pointing out the other approach for
consistency sake.

/Bruce

Reply via email to