[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
>
>
- [Qemu-devel] [PATCH v14 1/8] ui/Makefile.objs: delete unnecessary cocoa.o dependency, (continued)
- [Qemu-devel] [PATCH v14 1/8] ui/Makefile.objs: delete unnecessary cocoa.o dependency, Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 2/8] make.rule: fix $(obj) to a real relative path, Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 3/8] rule.mak: allow per object cflags and libs, Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 4/8] build-sys: introduce common-obj-m and block-obj-m for DSO, Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 5/8] module: implement module loading, Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 6/8] Makefile: install modules with "make install", Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 7/8] .gitignore: ignore module related files (dll, so, mo), Fam Zheng, 2013/10/15
- [Qemu-devel] [PATCH v14 8/8] block: convert block drivers linked with libs to modules, Fam Zheng, 2013/10/15
- Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support,
Fam Zheng <=
- Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support, Paolo Bonzini, 2013/10/16