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 14:26:18 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

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.

       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]