All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Tokarev <mjt@tls.msk.ru>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Anthony Liguori" <aliguori@us.ibm.com>,
	"Andreas Färber" <afaerber@suse.de>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH 0/4] per-object libraries
Date: Sun, 30 Jun 2013 20:49:28 +0400	[thread overview]
Message-ID: <51D06198.6090100@msgid.tls.msk.ru> (raw)
In-Reply-To: <CAFEAcA8jPNYgAe0DKFTfR1v0HCLKaFHKQK+oy5SokqZzE3TT_Q@mail.gmail.com>

30.06.2013 19:51, Peter Maydell wrote:
> On 30 June 2013 16:36, Michael Tokarev <mjt@tls.msk.ru> wrote:
>> I don't understand.  I for one like to see a plugins system used in qemu,
>> and except of the build system everything else is easy (and even nice,
>> there's even no need to load all plugins at startup as was initially
>> suggested).  But for this to work, we really need to separate libs
>> used only by plugins from the main lot, -- or else there's just no
>> reason to build plugins in the first place.
> 
> So, why do we want to build things as plugins? Neither of the
> cover letters to your two patch series nor Anthony's wiki page
> on modules actually give the rationale.

I just updated the wiki page a bit (which is at
http://wiki.qemu.org/Features/Modules btw).

The main rationale so far is to allow separate packaging of separate
features for downstreams, to reduce the need to install all dependent
libraries/packages.

> I'd like to see the reasons why we want this feature clearly laid
> out, because it is a big load of extra faff and potential portability
> issues (surrounding dlopen, possible use of libtool, etc), as
> well as being really easy to misunderstand as some kind of promise
> of API/ABI stability or third-party extension functionality.[*]
> 
> [*] by which I mean that although everybody here proposing patches
> is clear that that's out of scope, end users don't generally read
> patches and rationale emails, and "we dlopen device models" looks
> really really like a plugin ABI...

This has been mentioned already, one of the easy ways to prevent this
is to add some "build id" to all main symbols, so that only modules
from the same build will be loadable.  I mentioned this in the wiki
page too.

Thanks,

/mjt

  reply	other threads:[~2013-06-30 16:49 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-18 17:34 [Qemu-devel] [RFC PATCH 0/4] per-object libraries Michael Tokarev
2013-06-18 17:34 ` [Qemu-devel] [RFC PATCH 1/4] build-sys: strip leading ./ from $(obj) Michael Tokarev
2013-06-18 17:34 ` [Qemu-devel] [RFC PATCH 2/4] build-sys: allow object-specific libraries to be used to link executables Michael Tokarev
2013-06-18 17:34 ` [Qemu-devel] [RFC PATCH 3/4] build-sys: allow per-object foo.cflags variables Michael Tokarev
2013-06-18 17:34 ` [Qemu-devel] [RFC PATCH 4/4] build-sys: move -lcurl out of libs and specify it for curl.o Michael Tokarev
2013-06-19  0:41 ` [Qemu-devel] [RFC PATCH 0/4] per-object libraries Michael Tokarev
2013-06-19 14:16 ` Stefan Hajnoczi
2013-06-19 14:58   ` Michael Tokarev
2013-06-19 16:46   ` Paolo Bonzini
2013-06-19 16:58 ` Paolo Bonzini
2013-06-19 18:18   ` Michael Tokarev
2013-06-19 18:52     ` Paolo Bonzini
2013-06-19 19:31       ` Richard Henderson
     [not found]         ` <51C2D03E.2030505@redhat.com>
2013-06-20 10:06           ` Peter Maydell
2013-06-20 12:39             ` Paolo Bonzini
2013-06-20 12:50               ` Peter Maydell
2013-06-20 17:09           ` Richard Henderson
2013-06-19 20:00       ` Michael Tokarev
2013-06-20 10:09         ` Paolo Bonzini
2013-06-30 15:23   ` Michael Tokarev
2013-07-01 10:08     ` Paolo Bonzini
2013-07-01 10:10       ` Michael Tokarev
2013-07-01 10:18         ` Paolo Bonzini
2013-06-30 15:28 ` Andreas Färber
2013-06-30 15:36   ` Michael Tokarev
2013-06-30 15:51     ` Peter Maydell
2013-06-30 16:49       ` Michael Tokarev [this message]
2013-07-01  8:00         ` Stefan Hajnoczi
2013-06-30 15:56     ` Andreas Färber
2013-07-01 13:39     ` Paolo Bonzini
2013-07-01 14:43       ` Michael Tokarev
2013-07-01 14:46         ` Andreas Färber
2013-07-01 14:52           ` Michael Tokarev
2013-07-01 14:53           ` Paolo Bonzini
2013-07-01 15:06             ` Michael Tokarev
2013-07-01 15:20               ` Paolo Bonzini
2013-07-01 15:52                 ` Michael Tokarev

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=51D06198.6090100@msgid.tls.msk.ru \
    --to=mjt@tls.msk.ru \
    --cc=afaerber@suse.de \
    --cc=aliguori@us.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.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.