All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robie Basak <robie.basak@ubuntu.com>
To: Panu Matilainen <pmatilai@redhat.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH] mk: fix the combined library problems by replacing it with a linker script
Date: Tue, 1 Dec 2015 12:36:15 +0000	[thread overview]
Message-ID: <20151201123615.GI28475@mal.justgohome.co.uk> (raw)
In-Reply-To: <565D90AD.1070206@redhat.com>

On Tue, Dec 01, 2015 at 02:21:02PM +0200, Panu Matilainen wrote:
> Adding a soname and a semi-arbitrary version does not fix the fundamental
> problems:
> 
> Since the library lumps together everything in DPDK, you'd have to bump its
> version whenever any of the individual libraries bumps its version to have
> the version mean anything. DPDK 2.0 and 2.1 are supposedly binary compatible
> but 2.2 certainly is not, and beyond that who knows.
> 
> That in turn forces all apps to be rebuild whenever one of the libraries
> changes version, whether those apps use that particular library or not.

If we bundle all the libraries together into one package, then in
distributions we have to rebuild anyway when any of the libraries
changes version since a dependent package can't just depend on any later
version, because we don't know in advance what ABI breaks might occur.
It's also trivial to do rebuilds in a distribution. I'd prefer to see
ABI versioning done right to avoid the pain that might occur there.
Rebuilding dependent packages is on the other hand straightforward.

> The combined library doesn't have symbol versioning, so besides the better
> version compatibility tracking it loses other benefits like limited symbol
> visibility.

The combined library *should* have symbol versioning, which I've brought
up before. This isn't a reason to not have a combined library; it is a
reason to fix the combined library.

Why is limited symbol visibility a benefit in this case?

> Not to mention the extra complexity in makefiles to support it, the
> increasing amount of duct-tape required to hold it together. And still eg
> the MLX pmds declare the configuration not supported at all.

I'd argue that this is because the build system is unnecessarily complex
currently. A library consumer should just be able to #include
<dpdk/foo.h> and link with -ldpdk. It should not have a build system or
custom flags imposed on it by one of the libraries it uses.

Robie

  reply	other threads:[~2015-12-01 12:36 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-24 14:31 [PATCH] mk: fix the combined library problems by replacing it with a linker script Panu Matilainen
2015-11-24 14:55 ` Neil Horman
2015-11-24 21:28   ` Aaron Conole
2015-11-24 22:46 ` Stephen Hemminger
2015-11-25  8:38   ` Panu Matilainen
2015-11-25 13:00     ` Neil Horman
2015-11-25 16:08     ` Stephen Hemminger
2015-11-26  8:05       ` Panu Matilainen
2015-11-30 15:03       ` Neil Horman
2015-11-30 16:41         ` Stephen Hemminger
2015-12-01 12:21           ` Panu Matilainen
2015-12-01 12:36             ` Robie Basak [this message]
2015-12-01 13:30               ` Neil Horman
2015-12-08 17:03                 ` Robie Basak
2015-12-09 14:16                   ` Neil Horman
2015-12-01 13:20           ` Neil Horman
2015-12-01 12:37 ` Robie Basak
2015-12-02 11:44   ` Neil Horman
2015-12-03  1:31     ` Ferruh Yigit
2015-12-03  8:11       ` Christian Ehrhardt
2015-12-03 14:59       ` Neil Horman
2015-12-04 17:19 ` Thomas Monjalon
2015-12-07  8:27   ` Christian Ehrhardt
2015-12-07 10:33     ` Martinx - ジェームズ
2016-02-23 20:07 ` Thomas Monjalon
2016-02-24  9:37   ` Panu Matilainen
2016-02-23 22:20 ` [PATCH v2] mk: replace the combined library " Thomas Monjalon
2016-03-01 13:40   ` Thomas Monjalon
2016-03-01 14:48     ` Panu Matilainen
2016-03-02 12:30       ` Panu Matilainen
2016-03-02 12:40         ` Thomas Monjalon
2016-03-02 12:44           ` Panu Matilainen

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=20151201123615.GI28475@mal.justgohome.co.uk \
    --to=robie.basak@ubuntu.com \
    --cc=dev@dpdk.org \
    --cc=pmatilai@redhat.com \
    /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.