On Wed, 09/11 15:46, Paolo Bonzini wrote: > 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. > OK, will do it.
> > # 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))) \ Missing comma here: ^ Objects won't be static linked without --enable-modules. Fam > > + $(foreach v,$(filter %-m,$(nested-vars)), \ > > + $(eval $(patsubst %-m,%-y,$v) += $($v)) \ > > + $(eval $v := ))) > > > > endef > > >