From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39881) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtJun-0001wG-R7 for qemu-devel@nongnu.org; Sun, 30 Jun 2013 11:51:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UtJum-0005D0-IR for qemu-devel@nongnu.org; Sun, 30 Jun 2013 11:51:49 -0400 Received: from mail-la0-f48.google.com ([209.85.215.48]:42487) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtJum-0005Ca-9x for qemu-devel@nongnu.org; Sun, 30 Jun 2013 11:51:48 -0400 Received: by mail-la0-f48.google.com with SMTP id lx15so3545194lab.21 for ; Sun, 30 Jun 2013 08:51:46 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <51D05090.40304@msgid.tls.msk.ru> References: <1371576844-28743-1-git-send-email-mjt@msgid.tls.msk.ru> <51D04EA6.6020806@suse.de> <51D05090.40304@msgid.tls.msk.ru> From: Peter Maydell Date: Sun, 30 Jun 2013 16:51:26 +0100 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [RFC PATCH 0/4] per-object libraries List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Tokarev Cc: Paolo Bonzini , Anthony Liguori , =?UTF-8?Q?Andreas_F=C3=A4rber?= , qemu-devel@nongnu.org On 30 June 2013 16:36, Michael Tokarev 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'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... thanks -- PMM