On Tue, Nov 22, 2022 at 09:51:53AM +0100, David Marchand wrote: > On Mon, Nov 21, 2022 at 11:49 PM Tyler Retzlaff > <roret...@linux.microsoft.com> wrote: > > > > On Mon, Nov 21, 2022 at 10:36:24PM +0100, Thomas Monjalon wrote: > > > 21/11/2022 22:27, Konstantin Ananyev: > > > > From: Tyler Retzlaff <roret...@linux.microsoft.com> > > > > > e.g. i don't see. > > > > > > > > > > deps += ['eal'] > > > > > > > > > > is the dependency on eal the library or just eal headers? because if > > > > > it > > > > > is header only it is equivalent to telemetry i think? > > > > > > > > rte_ring.c uses bunch of EAL functions: > > > > rte_zmalloc, rte_memzone_*, rte_log*, rte_mcfg*, etc. > > > > > > I think deps += ['eal'] is missing in ring meson file. > > > > i guess that's what i'm kind of getting at... if it was there then the > > patch i submitted is not required since depending on eal would drag in > > global_inc. > > It is implicitly added, via lib/meson.build: > > First eal is parsed before a lot of other components: > > libraries = [ > 'kvargs', # eal depends on kvargs > 'telemetry', # basic info querying > 'eal', # everything depends on eal > 'ring', > > Then, there is: > > # eal is standard dependency once built > if dpdk_conf.has('RTE_LIB_EAL') > deps += ['eal'] > endif > > Since every library in DPDK that is built after EAL depends upon EAL, it's added as a standard dependency. However, if we prefer to have more explicit dependencies we can remove that and add it to what every libraries need it.
[Ideally, I'd like to have all library meson.build files call out the full list of other libs they use, but I found in the past that it caused the configure time with meson to balloon as it tracked recursive dependencies, leading to entries appearing multiple times and then having to be pruned down. This is why in meson.build files dependency lists have been kept to a minimum up till now] /Bruce