Il 11/09/2013 15:34, Fam Zheng ha scritto: > The new option will enable support of shared object build. Otherwise > objects are static linked to executables. > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > Makefile.target | 6 +++++- > configure | 8 ++++++++ > rules.mak | 6 +++++- > 3 files changed, 18 insertions(+), 2 deletions(-) > > diff --git a/Makefile.target b/Makefile.target > index 87906ea..7fb9e4d 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -152,7 +152,11 @@ obj-y-save := $(obj-y) > block-obj-y := > common-obj-y := > include $(SRC_PATH)/Makefile.objs > -dummy := $(call unnest-vars,..,block-obj-y common-obj-y) > +dummy := $(call unnest-vars,.., \ > + block-obj-y \ > + block-obj-m \ > + common-obj-y \ > + common-obj-m) >
This would have to be in patch 3; in fact, it probably makes sense to squash the two together. Paolo > # Now restore obj-y > obj-y := $(obj-y-save) > diff --git a/configure b/configure > index a80f143..275b1a0 100755 > --- a/configure > +++ b/configure > @@ -192,6 +192,7 @@ gcov_tool="gcov" > EXESUF="" > DSOSUF=".so" > LDFLAGS_SHARED="-shared" > +modules="no" > prefix="/usr/local" > mandir="\${prefix}/share/man" > datadir="\${prefix}/share" > @@ -651,6 +652,8 @@ for opt do > ;; > --disable-debug-info) > ;; > + --enable-modules) modules="yes" > + ;; > --cpu=*) > ;; > --target-list=*) target_list="$optarg" > @@ -1056,6 +1059,7 @@ echo " --moddir=PATH install modules in > PATH" > echo " --sysconfdir=PATH install config in PATH$confsuffix" > echo " --localstatedir=PATH install local state in PATH (set at runtime > on win32)" > echo " --with-confsuffix=SUFFIX suffix for QEMU data inside datadir and > sysconfdir [$confsuffix]" > +echo " --enable-modules enable modules support" > echo " --enable-debug-tcg enable TCG debugging" > echo " --disable-debug-tcg disable TCG debugging (default)" > echo " --enable-debug-info enable debugging information (default)" > @@ -3585,6 +3589,7 @@ echo "python $python" > if test "$slirp" = "yes" ; then > echo "smbd $smbd" > fi > +echo "module support $modules" > echo "host CPU $cpu" > echo "host big endian $bigendian" > echo "target list $target_list" > @@ -3703,6 +3708,9 @@ echo "libs_softmmu=$libs_softmmu" >> $config_host_mak > > echo "ARCH=$ARCH" >> $config_host_mak > > +if test "$modules" = "yes"; then > + echo "CONFIG_MODULES=y" >> $config_host_mak > +fi > case "$cpu" in > arm|i386|x86_64|x32|ppc|aarch64) > # The TCG interpreter currently does not support ld/st optimization. > diff --git a/rules.mak b/rules.mak > index 9275d91..22492a9 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -187,6 +187,10 @@ $(if $1,$(foreach v,$(nested-vars),$(eval \ > $(foreach v,$(filter %-m,$(nested-vars)), \ > $(call add-modules,$v)) > > -$(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m))) > +$(if $(CONFIG_MODULES), \ > + $(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m))) \ > + $(foreach v,$(filter %-m,$(nested-vars)), \ > + $(eval $(patsubst %-m,%-y,$v) += $($v)) \ > + $(eval $v := ))) > > endef >