All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, david.marchand@redhat.com
Subject: Re: [dpdk-dev] [PATCH] devtools/test-meson-builds: allow custom set of examples
Date: Tue, 10 Nov 2020 12:25:13 +0100	[thread overview]
Message-ID: <2594616.PNtlxbl9Qa@thomas> (raw)
In-Reply-To: <20201110100851.GA1641@bricha3-MOBL.ger.corp.intel.com>

10/11/2020 11:08, Bruce Richardson:
> On Mon, Nov 09, 2020 at 08:26:10PM +0100, Thomas Monjalon wrote:
> > 09/11/2020 19:02, Bruce Richardson:
> > > On Mon, Nov 09, 2020 at 06:09:51PM +0100, Thomas Monjalon wrote:
> > > > 27/10/2020 18:38, Bruce Richardson:
> > > > > To test the installation process of DPDK using "ninja install"
> > > > > test-meson-builds.sh builds a subset of the examples using "make".
> > > > > To allow more flexibility for people testing, allow the set of
> > > > > examples chosen for this make test to be overridden using variable
> > > > > "DPDK_BUILD_TEST_EXAMPLES" in the environment.
> > > > > 
> > > > > Since a number of example apps link against drivers directly even
> > > > > for shared builds, we need to ensure that LD_LIBRARY_PATH points to
> > > > > the main DPDK lib folder so any dependencies of those drivers can
> > > > > be found e.g. that the PCI/vdev bus driver .so is found. [All
> > > > > drivers are symlinked from drivers dir back to lib dir on install,
> > > > > so only one dir rather than two is needed in the path.]
> > > > [...]
> > > > > +libdir=$(dirname $(find $DESTDIR -name librte_eal.so)) +export
> > > > > LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH
> > > > 
> > > > I don't get why libdir is required for some examples, and not for
> > > > others? The pkg-config file is not enough?
> > > > 
> > > 
> > > It's only needed for examples that link against drivers directly. 
> > > 
> > > I believe it's needed in those cases, because app linker flags
> > > (including e.g. -lrte_pmd_bond) occur before the pkg-config flags,
> > > which means that the linker at that point does not have the path to
> > > find the dependencies of the driver. [In a normal build, this wouldn't
> > > be necessary because the library directory would be a standard path]
> > 
> > If it's just a matter of ordering, it would be a better example to fix
> > the ordering in the Makefile, isn't it?
> > 
> 
> I thought about that, but it seems strange to have the DPDK linker flags
> appear before the application specific flags. The general style is to have
> the apps own linker flags apply first, and then the list of dependencies,
> so that any app linker flags take precedence. The other option is to have
> two separate LDFLAG variables for the app, one for before pkg-config flags
> and the other afterwards, but that is an untidy solution.
> 
> Therefore, I think it's better to keep the ordering in the examples as-is
> and just set the library path in the script. It's only a single extra
> assignment that is necessary because we are installing to a non-standard
> path using DESTDIR.

It is OK to add LD_LIBRARY_PATH in test-meson-builds.sh because
DPDK is "installed" with a DESTDIR prefix.

But this change is unrelated to test more examples,
it is a general fix for examples compilation.
The thing I'm missing, as I said above,
"why libdir is required for some examples, and not for others?"
I feel something wrong made linking work where it should not.



  reply	other threads:[~2020-11-10 11:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-27 17:38 [dpdk-dev] [PATCH] devtools/test-meson-builds: allow custom set of examples Bruce Richardson
2020-11-09 10:01 ` David Marchand
2020-11-12 15:40   ` Thomas Monjalon
2020-11-09 17:09 ` Thomas Monjalon
2020-11-09 18:02   ` Bruce Richardson
2020-11-09 19:26     ` Thomas Monjalon
2020-11-10 10:08       ` Bruce Richardson
2020-11-10 11:25         ` Thomas Monjalon [this message]
2020-11-10 11:34           ` Bruce Richardson
2020-11-10 13:04             ` Thomas Monjalon
2020-11-10 13:19               ` Bruce Richardson
2020-11-10 13:53                 ` Thomas Monjalon
2020-11-10 14:19                   ` Bruce Richardson
2020-11-10 14:36                     ` Thomas Monjalon
2020-11-12 14:40                       ` David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2594616.PNtlxbl9Qa@thomas \
    --to=thomas@monjalon.net \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.