From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42100) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPBan-0000Pi-95 for qemu-devel@nongnu.org; Thu, 26 Sep 2013 09:26:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VPBah-0002b8-Ib for qemu-devel@nongnu.org; Thu, 26 Sep 2013 09:26:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:32500) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPBah-0002Yl-Ap for qemu-devel@nongnu.org; Thu, 26 Sep 2013 09:26:47 -0400 Date: Thu, 26 Sep 2013 21:26:25 +0800 From: Fam Zheng Message-ID: <20130926132625.GA26743@T430s.nay.redhat.com> References: <1379408075-12685-1-git-send-email-famz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1379408075-12685-1-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v11 0/8] Shared Library Module Support Reply-To: famz@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, peter.maydell@linaro.org, stefanha@redhat.com, mjt@tls.msk.ru, xiawenc@linux.vnet.ibm.com, kraxel@redhat.com, alex@alex.org.uk, anthony@codemonkey.ws, pbonzini@redhat.com, vilanova@ac.upc.edu, rth@twiddle.net On Tue, 09/17 16:54, Fam Zheng wrote: > This series implements feature of shared object building as described in: > > http://wiki.qemu.org/Features/Modules > > The main idea behind modules is to isolate dependencies on third party > libraries from qemu executables, such as libglusterfs or librbd, so that the > end users can install core qemu package with fewer dependencies. And only for > those who want to use particular modules, need they install qemu-foo > sub-package, which in turn requires libbar and libbiz packages. > > It's implemented in three steps: > > 1. The first patches fix current build system to correctly handle nested > variables and object specific options: > > [01/08] ui/Makefile.objs: delete unnecessary cocoa.o dependency > [02/08] make.rule: fix $(obj) to a real relative path > [03/08] rule.mak: allow per object cflags and libs > > 2. The Makefile changes adds necessary options and rules to build DSO objects: > > [04/08] build-sys: introduce common-obj-m and block-obj-m for DSO > > 3. The next patch adds code to load modules from installed directory: > > [05/08] module: implement module loading > > A few more changes are following to complete it: > > [06/08] Makefile: install modules with "make install" > [07/08] .gitignore: ignore module related files (dll, so, mo) > > In the end of series, the block drivers are converted: > > [08/08] block: convert block drivers linked with libs to modules > Ping? > v11: > [04] Link DSO with -Wl,--enable-new-dtags -Wl,-rpath,'$$ORIGIN' (Richard) I don't fully understand the portability issue with this flag yet, is this OK to keep or should be dropped? Any opinions? Thanks, Fam > [05] Reuse module_init_type in module_load, no separate load type enums. > Separate list of modules by type. It's simply list of built modules > now. No whitelist option in configure. > Support multiple module_init() in single module. > [...]