qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support
Date: Wed, 16 Oct 2013 17:01:03 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, 10/16 14:26, Fam Zheng wrote:
> On Wed, 10/16 11:26, 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
> > 
> > v14: Fix alpha-linux-user compiling by:
> >      a) Add object specific libs to qcow.o and linux-aio.o.
> 
>        Patch 08 for this.
> 
> >      b) Only link block-obj-m to softmmu targets.

Sorry..

s/block-obj-m/block-obj-y/

Fam

> 
>        Patch 02 for this.
> 
> >      (Thanks Paolo)
> > 
> > v13: Drop --moddir option in configure. (Paolo)
> > 
> > v12: Rebase to current master, no conflict.
> >      Drop "-Wl,--enable-new-tags -Wl,-rpath,'$$ORIGIN'". (Paolo)
> > 
> > v11:
> >     [04] Link DSO with  -Wl,--enable-new-dtags -Wl,-rpath,'$$ORIGIN' 
> > (Richard)
> >     [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.
> > 
> > v10:
> >     All modules in a single directory (moddir), with module type prefixed:
> >         /usr/lib/qemu/block-{curl,iscsi,...}.so
> >     The module names for user to list in module whitelist is consequently:
> >         block-curl, block-iscsi, ui-*, etc.
> >     In Makfile, the installed module filename is simply generated by:
> >         $(subst /,-,%.so)
> >     Which is also the rule for module names.
> > 
> >     [05] Add #undef CONFIG_MODULE_WHITELIST in config-host.h.
> >          Use static array for whitelist. (Richard)
> > 
> > Fam Zheng (7):
> >   make.rule: fix $(obj) to a real relative path
> >   rule.mak: allow per object cflags and libs
> >   build-sys: introduce common-obj-m and block-obj-m for DSO
> >   module: implement module loading
> >   Makefile: install modules with "make install"
> >   .gitignore: ignore module related files (dll, so, mo)
> >   block: convert block drivers linked with libs to modules
> > 
> > Peter Maydell (1):
> >   ui/Makefile.objs: delete unnecessary cocoa.o dependency
> > 
> >  .gitignore            |   3 ++
> >  Makefile              |  30 +++++++++++++-
> >  Makefile.objs         |  19 ++-------
> >  Makefile.target       |  24 +++++++++--
> >  block/Makefile.objs   |  13 +++++-
> >  configure             |  81 ++++++++++++++++++++++++++------------
> >  include/qemu/module.h |  12 ++++++
> >  module-common.c       |  10 +++++
> >  rules.mak             |  80 +++++++++++++++++++++++++++++++------
> >  scripts/create_config |  14 +++++++
> >  ui/Makefile.objs      |   2 -
> >  util/module.c         | 107 
> > +++++++++++++++++++++++++++++++++++++++++++++++++-
> >  12 files changed, 330 insertions(+), 65 deletions(-)
> >  create mode 100644 module-common.c
> > 
> > -- 
> > 1.8.3.1
> > 
> > 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]