[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: |
Thu, 17 Oct 2013 10:35:39 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, 10/16 18:20, Paolo Bonzini wrote:
> Il 16/10/2013 05:26, Fam Zheng ha scritto:
> > 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.
>
> Fam,
>
> I'm not sure I'll be able to do all the required testing before hard
> freeze, so I'm leaning towards only submitting patch 1 in my upcoming
> pull request (to be sent tomorrow, probably). The rest will be left for
> 1.8; I'm sorry.
>
OK. Not major impact as seen by me.
Fam
> > 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.
> > b) Only link block-obj-m to softmmu targets.
> > (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
> >
>
- Re: [Qemu-devel] [PATCH v14 2/8] make.rule: fix $(obj) to a real relative path, (continued)
- [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, 2013/10/16
- Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support, Paolo Bonzini, 2013/10/16
- Re: [Qemu-devel] [PATCH v14 0/8] Shared Library Module Support,
Fam Zheng <=