Thread (88 messages) 88 messages, 4 authors, 2019-03-01

Re: [dpdk-stable] [PATCH 2/2] build: use dependency() instead of find_library()

From: Luca Boccassi <hidden>
Date: 2019-01-11 14:56:28

On Fri, 2019-01-11 at 14:24 +0000, Bruce Richardson wrote:
On Fri, Jan 11, 2019 at 12:39:23PM +0000, Luca Boccassi wrote:
quoted
On Fri, 2019-01-11 at 11:52 +0000, Bruce Richardson wrote:
quoted
On Fri, Jan 11, 2019 at 11:10:28AM +0000, Luca Boccassi wrote:
quoted
On Mon, 2019-01-07 at 16:55 +0000, Bruce Richardson wrote:
quoted
On Mon, Jan 07, 2019 at 04:39:34PM +0000, Luca Boccassi
wrote:
quoted
On Mon, 2019-01-07 at 14:28 +0000, Bruce Richardson wrote:
quoted
On Thu, Jan 03, 2019 at 06:57:25PM +0100, Luca Boccassi
wrote:
quoted
For libbsd, which is checked in a top level file and
used
to be
added
to the global linker flags array, add it to the
ext_deps
array
of
all top level meson files (app, test, lib, examples,
drivers).
The
most correct change would be to let each individual
library/driver/app
depend on it individually if they use symbols from it,
but
it
would
diverge from the legacy Makefile's behaviour and make
life
a
bit
more
difficult for contributors.
It shouldn't be necessary to add libbsd as a dependency
for
everything. I
think just adding it as a dependency of EAL should work
fine. 
Won't that mean that the shared libraries other than EAL
will
have
undefined references?
Should not happen. AFAIK when you link against a library in
meson
it
will
also link against any of that libraries dependencies too. For
shared
libraries meson always disallowed undefined references in the
linker
commandline. [To have libs with undefined refs, e.g. plugins,
you
need to
use "shared_module" rather than "shared_library" command].
Looked at this again, and rte_cmdline is using strlcpy as well,
and
it's built before rte_eal, so it fails:

lib/76b5a35@@rte_cmdline@sta/librte_cmdline_cmdline_parse.c.o:
In
function `cmdline_complete':
cmdline_parse.c:(.text+0x861): undefined reference to `strlcpy'

Adding it to ext_deps in both rte_cmdline and rte_eal works. Is
that an acceptable compromise?
Sure. If eal has a dependency on cmdline, you probably don't need
to
add it
as an external dependency to EAL too, but it doesn't really hurt
to
do so.

/Bruce
eal does not depend on cmdline, so added in both in v2. I also
split
the libbsd change and meson bump to 0.47.1 in a separate commit in
the
series.

-- 
If there is no dependency, why is it being built first?
Comment says "ethdev depends on cmdline for parsing functions"

https://git.dpdk.org/dpdk/tree/lib/meson.build#n12

-- 
Kind regards,
Luca Boccassi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help