Hello Bruce,

On Tue, Jul 18, 2023 at 11:10 AM Bruce Richardson
<bruce.richard...@intel.com> wrote:
>
> On Thu, Jun 29, 2023 at 11:39:53AM +0200, David Marchand wrote:
> > On Wed, Jun 28, 2023 at 12:19 PM David Marchand
> > <david.march...@redhat.com> wrote:
> > >
> > > On Fri, Jun 23, 2023 at 5:07 PM Bruce Richardson
> > > <bruce.richard...@intel.com> wrote:
> > > >
> > > > While the build system will skip building most libs and drivers when a
> > > > dependency is missing for a component, for DLB2 driver, the
> > > > "static_rte_eventdev" object is referenced inside the meson.build file
> > > > itself, which will cause crashes if it doesn't exist i.e. if eventdev is
> > > > disabled. Prevent this issue by skipping processing the file if no
> > > > eventdev. [The build system will still report missing dependency, as the
> > > > dependency is set by default for all eventdev drivers]
> > > >
> > > > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
> > >
> > > Could we evaluate the class "std_deps" before jumping to each driver
> > > meson.build?
> >
> > Hum, with my suggestion, we lose the opportunity for drivers to
> > rewrite completely their "deps".
> > I doubt we have cases where it really matters, but if this revealed to
> > be necessary, such driver may be directly referenced in
> > drivers/meson.build like we do for common/cnxk & friends.
> >
> > To illustrate the idea, I pushed your series along patches of mine
> > (target is v23.11) in my github repo.
> > https://github.com/david-marchand/dpdk/commit/enable_libs~8
> >
> I don't think we should need to worry too much about the case of a driver
> needing to rewrite deps. The standard deps should really just be the
> minimal deps for a class.
>
> However, for the implementation of that check, I'm not sure I like the
> approach of checking std_deps in a loop for each driver. Firstly, the logic
> inside the per-driver block is already pretty complicated, but secondly, I
> think we can skip that loop entirely if the standard deps for a class are
> not met. I think instead it would be better to process std_deps value once
> immediately after the "subdir(class)" line, and if not all deps are
> present, just loop through all the driver directories for that class
> immediately and mark them as unbuildable, before just moving on to the next
> class.

Skipping this loop makes the change smaller and the logic in
drivers/meson.build easier to understand.
We lose the exhaustive summary for disabled content (before, every
disabled driver was logged with the associated reason), but we can
still log the reason why a class is disabled.

Your suggestion looks good to me, let me send a patch.


-- 
David Marchand

Reply via email to