All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Luca Boccassi <bluca@debian.org>
Cc: dev@dpdk.org, thomas@monjalon.net, 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: Wed, 18 Oct 2017 10:51:49 +0100	[thread overview]
Message-ID: <20171018095149.GA14720@bricha3-MOBL3.ger.corp.intel.com> (raw)
In-Reply-To: <20171018093548.GA15216@bricha3-MOBL3.ger.corp.intel.com>

On Wed, Oct 18, 2017 at 10:35:48AM +0100, Bruce Richardson wrote:
> On Tue, Oct 17, 2017 at 07:17:09PM +0100, Luca Boccassi wrote:
> > On Tue, 2017-10-17 at 19:11 +0100, Luca Boccassi wrote:
> > > On Tue, 2017-10-17 at 17:12 +0100, Bruce Richardson wrote:
> > > > Since a number of libraries depend on the maths lib, as well as
> > > > adding it
> > > > to the project args, we also need to add it to the pkgconfig file
> > > > args.
> > > > 
> > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > ---
> > > >  config/meson.build | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/config/meson.build b/config/meson.build
> > > > index db68a08d4..542fea4de 100644
> > > > --- a/config/meson.build
> > > > +++ b/config/meson.build
> > > > @@ -35,6 +35,7 @@ dpdk_conf.set('RTE_MACHINE', machine)
> > > >  add_project_arguments('-march=@0@'.format(machine), language: 'c')
> > > >  # some libs depend on maths lib
> > > >  add_project_link_arguments('-lm', language: 'c')
> > > > +dpdk_extra_ldflags += '-lm'
> > > >  
> > > >  # add -include rte_config to cflags
> > > >  add_project_arguments('-include', 'rte_config.h', language: 'c')
> > > 
> > > This is for static builds, right? If so it should go into the
> > > Libs.private section of the .pc file, so that it's only used when
> > > calling pkg-config --static --libs
> > 
> > Bit of a brain fart - what I meant is, in order to have static builds
> > work out of the box with pkg-config --static, -lm (and any other
> > dependency used internally) could also be added to Libs.private in the
> > .pc
> 
> Does that not assume that both static and dynamic libs are installed
> side-by-side? In DPDK case, we will either build static libs or shared
> libs, but not both. If we require applications to use different
> pkg-config commands depending on the type of DPDK build that was done,
> it makes things awkward for the apps. Right now by putting all libs and
> flags into the libs section of pkgconfig, and having the build system
> track whether it's static or dynamic and therefore what is actually
> necessary, we end up in a case where apps can be built against DPDK
> irrespective of the actual build type done. For this particular -lm
> flag, for instance, it only appears in the .pc file for static builds.
> 
> See the patches for the sample app Makefiles. Not sure how that can be
> made to work if we use different pkg-config settings for different build
> types.
> 
> Your input and suggestions here would be welcome.
> 

+Thomas, Olivier, Sergio to get more input

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

  reply	other threads:[~2017-10-18  9:51 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 [this message]
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
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=20171018095149.GA14720@bricha3-MOBL3.ger.corp.intel.com \
    --to=bruce.richardson@intel.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.