All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Aaron Conole <aconole@redhat.com>,
	Luca Boccassi <bluca@debian.org>,
	dev@dpdk.org, olivier.matz@6wind.com,
	sergio.gonzalez.monroy@intel.com
Subject: Re: [PATCH 1/8] build: add maths library to libs in pkg-config file
Date: Thu, 19 Oct 2017 09:38:10 +0100	[thread overview]
Message-ID: <20171019083810.GA6140@bricha3-MOBL3.ger.corp.intel.com> (raw)
In-Reply-To: <52014257.9Hsyuahhlk@xps>

On Wed, Oct 18, 2017 at 09:21:52PM +0200, Thomas Monjalon wrote:
> 18/10/2017 21:13, Aaron Conole:
> > Luca Boccassi <bluca@debian.org> writes:
> > > On Wed, 2017-10-18 at 15:20 +0100, Bruce Richardson wrote:
> > >> On Wed, Oct 18, 2017 at 01:24:54PM +0100, Bruce Richardson wrote:
> > >> > On Wed, Oct 18, 2017 at 11:14:07AM +0100, Luca Boccassi wrote:
> > >> > > On Wed, 2017-10-18 at 10:51 +0100, Bruce Richardson wrote:
> > >> > > > Thinking about it some more, is there any reason why we can't
> > >> > > > or
> > >> > > > shouldn't do both static and dynamic libs in all builds, and
> > >> > > > then let
> > >> > > > apps use pkg-config to determine what they want to link
> > >> > > > against? It
> > >> > > > wouldn't be a massive change to the new build system to do
> > >> > > > that, I
> > >> > > > think.
> > >> > > > 
> > >> > > > /Bruce
> > >> > > 
> > >> > > Yes that would be ideal! Right now in Debian/Ubuntu we have to
> > >> > > build
> > >> > > twice, doubling the required time unfortunately.
> > >> > > 
> > >> > > In theory the same objects could be packed into .ar and .so but
> > >> > > sadly
> > >> > > Meson doesn't support that yet like autotools/cmake do:
> > >> > > 
> > >> > > https://github.com/mesonbuild/meson/issues/484
> > >> > > 
> > >> > > (please do add some feedback there as developers!)
> > >> > > 
> > >> > > It looks like it could be possible with some extensive hacking,
> > >> > > not
> > >> > > sure if it would be worth it.
> > >> > > 
> > >> > 
> > >> > Actually, I think it's workable using extract_objects. Build the
> > >> > static
> > >> > lib first, then extract_all_objects() and then use those to build
> > >> > the .so.
> > >> > I can prototype it very easily by changing lib/meson.build and see
> > >> > what
> > >> > happens.
> > >> > 
> > >> 
> > >> Seems to work fine. This change makes all the libraries (bar EAL,
> > >> which
> > >> is special-cased) appear as both .a and .so. Testpmd links against
> > >> the
> > >> dynamic versions and still works.
> > >> 
> > >> When I get the chance I'll see about doing the same for EAL and
> > >> drivers,
> > >> and then having the pkgconfig file reflect both possibilities. Then I
> > >> can test with some examples linking both dynamically and statically
> > >> and
> > >> check all is as expected.
> [...]
> > > Nice! Much easier than I thought reading that thread :-)
> > >
> > > I'll try to give it a test run in the next few days. Thanks!
> > 
> > Would there be any opposition if someone were to feel ambitious and
> > attempt this for the existing build system as well?  Not me, of course.
> > Asking for a friend, that's all. ;)
> 
> You can say to your friend that it must be done in one compilation pass
> to avoid losing too much time. Only the link step would be duplicate.
> 
> Then your friend should think about how to link the applications.
> Whould -you- he keep the config option or link the app in two flavours?
> 
One other thing that needs to be done is a minor change to the EAL to
not error out if the EAL_PMD_PATH directory does not exist. Right now
with shared builds we set this to where the drivers will go, but for
static builds this has to be NULL otherwise we get errors. Ideally, this
should be ok to have as the .so driver path, even if we only have static
libs installed. 

Furthermore, has anyone tested to see what happens if we have all the
drivers statically linked into testpmd, but EAL_PMD_PATH has a path to
the .so files? Do we just get duplicate copies of the drivers, and
nothing else goes wrong, or does the application halt and catch fire?


/Bruce

  reply	other threads:[~2017-10-19  8:38 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 16:12 [PATCH 0/8] Support sample applications with new build system Bruce Richardson
2017-10-17 16:12 ` [PATCH 1/8] build: add maths library to libs in pkg-config file Bruce Richardson
2017-10-17 18:11   ` Luca Boccassi
2017-10-17 18:17     ` Luca Boccassi
2017-10-18  9:35       ` Bruce Richardson
2017-10-18  9:51         ` Bruce Richardson
2017-10-18 10:14           ` Luca Boccassi
2017-10-18 12:24             ` Bruce Richardson
2017-10-18 14:20               ` Bruce Richardson
2017-10-18 15:28                 ` Luca Boccassi
2017-10-18 19:13                   ` Aaron Conole
2017-10-18 19:21                     ` Thomas Monjalon
2017-10-19  8:38                       ` Bruce Richardson [this message]
2017-10-18 11:20           ` Thomas Monjalon
2017-10-18 12:28             ` Bruce Richardson
2017-10-17 16:12 ` [PATCH 2/8] build: add detection and use of libnuma Bruce Richardson
2017-10-17 16:12 ` [PATCH 3/8] lpm: install vector header files Bruce Richardson
2017-10-17 16:12 ` [PATCH 4/8] event: add skeleton and sw eventdevs to meson build Bruce Richardson
2017-10-17 16:12 ` [PATCH 5/8] net/bonding: add " Bruce Richardson
2017-10-17 16:12 ` [PATCH 6/8] examples: allow building examples as part of a " Bruce Richardson
2017-10-17 16:12 ` [PATCH 7/8] examples: put app name and sources at top of makefiles Bruce Richardson
2017-10-17 16:12 ` [PATCH 8/8] examples: use pkg-config info when building examples Bruce Richardson
2017-10-18 17:11 ` [PATCH 0/8] Support sample applications with new build system Luca Boccassi
2017-10-19  8:39   ` Bruce Richardson
2017-10-23 10:43   ` Bruce Richardson

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=20171019083810.GA6140@bricha3-MOBL3.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=aconole@redhat.com \
    --cc=bluca@debian.org \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    --cc=sergio.gonzalez.monroy@intel.com \
    --cc=thomas@monjalon.net \
    /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.