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 > > >