From: Thomas Monjalon <thomas@monjalon.net>
To: Olivier Matz <olivier.matz@6wind.com>,
Bruce Richardson <bruce.richardson@intel.com>
Cc: stable@dpdk.org, dev@dpdk.org,
Harry van Haaren <harry.van.haaren@intel.com>,
Keith Wiles <keith.wiles@intel.com>,
Luca Boccassi <luca.boccassi@gmail.com>
Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] app: fix plugin load on static builds
Date: Thu, 26 Nov 2020 18:07:32 +0100 [thread overview]
Message-ID: <2510990.SFP7MGkWmT@thomas> (raw)
In-Reply-To: <20201126163703.GH1340@bricha3-MOBL.ger.corp.intel.com>
26/11/2020 17:37, Bruce Richardson:
> On Thu, Nov 26, 2020 at 05:32:26PM +0100, Olivier Matz wrote:
> > Hi Bruce,
> >
> > Thanks for the feedback.
> >
> > On Thu, Nov 26, 2020 at 03:28:46PM +0000, Bruce Richardson wrote:
> > > On Thu, Nov 26, 2020 at 03:20:42PM +0100, Olivier Matz wrote:
> > > > When dpdk is compiled as static libraries, it is not possible
> > > > to load a plugin from an application. We get the following error:
> > > >
> > > > EAL: librte_pmd_xxxx.so: undefined symbol: per_lcore__rte_errno
> > > >
> > > > This happens because the dpdk symbols are not exported. Add them to the
> > > > dynamic symbol table by using '-Wl,--export-dynamic'. This option was
> > > > previously present when compiled with Makefiles, it was introduced in
> > > > commit f9a08f650211 ("eal: add support for shared object drivers")
> > > >
> > > > Fixes: 16ade738fd0d ("app/testpmd: build with meson")
> > > > Fixes: 89f0711f9ddf ("examples: build some samples with meson")
> > > > Cc: stable@dpdk.org
> > > >
> > > > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > > > ---
> > > >
> > > > Hi,
> > > >
> > > > Maybe the patch can be improved: I suppose that --export-dynamic
> > > > should only be added in case we are linking in static mode. Any
> > > > help about how to do that is welcome.
> > >
> > > get_option('default_library') == 'static'
> > >
> > > However, if the flag is harmless in shared linking mode, I don't think we
> > > need bother with this.
> >
> > ok
> >
> > > >
> > > > There is probably a better place to define the default ldflags for
> > > > all applications (to factorize between app and example).
> > > >
> > > > Also, should this flag be advertised in pkg-config?
> > > >
> > > Perhaps. However, I'm not sure how common it would be for people to static
> > > link their own apps with DPDK and then want to plug in extra drivers after
> > > the fact? Are there any possible negative impacts to making that change?
> >
> > I don't know if it is common, but this is something we do :)
> >
> > > If we weren't right before the release deadline I'd definitely suggest
> > > adding it to the pkg-config files. At this late stage in release, I'm more
> > > cautious.
> >
> > Yes, it is too late for 20.11. Maybe even for this patch without
> > updating pkg-config.
> >
>
> Well, since this is something clearly broken that is of use to you, I think
> we should strive to get some fix for it in. Based on the lateness of the
> hour, I think your patch is pretty close to the least-risky option we could
> take here. Therefore, despite my previous comment about not needing to
> limit the additional linking flag to static-builds only, I would suggest -
> out of an abundance of caution - that we do so, and keep the rest of your
> patch as-is for 20.11. Thereafter we can look at other possible approaches
> and simplifications in 21.02 and backport them.
>
> So, for your patch with "if get_option('default_library') ..." checks added
> appropriately:
>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
The most critical issue is for externally built applications
statically linked using external plugins.
This patch fixes only internal apps built with meson.
I am for keeping the issue as-is for 20.11.0,
because it is really too late to change a compilation option.
We have already been bitten by compilers not supporting an option
or being buggy in specific contexts. I prefer not taking this risk
for a fix which helps nobody really.
next prev parent reply other threads:[~2020-11-26 17:07 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-26 14:20 [dpdk-dev] [PATCH] app: fix plugin load on static builds Olivier Matz
2020-11-26 15:28 ` Bruce Richardson
2020-11-26 16:32 ` Olivier Matz
2020-11-26 16:37 ` Bruce Richardson
2020-11-26 17:07 ` Thomas Monjalon [this message]
2020-11-26 17:13 ` [dpdk-dev] [dpdk-stable] " Olivier Matz
2020-11-26 17:15 ` Bruce Richardson
2020-12-18 12:52 ` [dpdk-dev] [PATCH v2] " Olivier Matz
2020-12-18 13:14 ` [dpdk-dev] [PATCH v3] build: " Olivier Matz
2020-12-21 11:04 ` Bruce Richardson
2021-01-05 21:46 ` Thomas Monjalon
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=2510990.SFP7MGkWmT@thomas \
--to=thomas@monjalon.net \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=harry.van.haaren@intel.com \
--cc=keith.wiles@intel.com \
--cc=luca.boccassi@gmail.com \
--cc=olivier.matz@6wind.com \
--cc=stable@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.