[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-module
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules |
Date: |
Wed, 11 Sep 2013 09:27:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
Il 11/09/2013 07:38, 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 <address@hidden>
> ---
> Makefile.target | 6 +++++-
> configure | 8 ++++++++
> rules.mak | 8 ++++++--
> 3 files changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile.target b/Makefile.target
> index 1d92523..beab0f9 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)
>
> # Now restore obj-y
> obj-y := $(obj-y-save)
> diff --git a/configure b/configure
> index a2858c2..f1d7fa7 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"
> @@ -650,6 +651,8 @@ for opt do
> ;;
> --disable-debug-info)
> ;;
> + --enable-modules) modules="yes"
> + ;;
> --cpu=*)
> ;;
> --target-list=*) target_list="$optarg"
> @@ -1052,6 +1055,7 @@ echo " --libdir=PATH install libraries 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)"
> @@ -3580,6 +3584,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"
> @@ -3697,6 +3702,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 ea97888..860b8ac 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -185,7 +185,11 @@ $(foreach var,$(nested-vars), $(eval \
> $(foreach v,$(filter %-m,$(nested-vars)), \
> $(call add-modules,$v))
>
> -$(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m)))
> -$(eval all: modules)
> +$(if $(CONFIG_MODULES), \
> + $(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m))) \
> + $(eval all: modules), \
Since you'll have a v6, please move "all: modules" to Makefile, and in
rules.mak:
.PHONY: modules
modules:
There are a couple of things that can be improved still (I don't like
obj-save-y for example), but things are taking shape and all of this
looks like something that can be fixed on top. If you look at
converting more parts to modules (e.g. rbd or spice), you can drop that
RFC! :)
Thanks,
Paolo
> + $(foreach v,$(filter %-m,$(nested-vars)), \
> + $(eval $(patsubst %-m,%-y,$v) += $($v)) \
> + $(eval $v := )))
>
> endef
>
- [Qemu-devel] [RFC PATCH v5 0/6] Shared Library Module Support, Fam Zheng, 2013/09/11
- [Qemu-devel] [RFC PATCH v5 1/6] make.rule: fix $(obj) to a real relative path, Fam Zheng, 2013/09/11
- [Qemu-devel] [RFC PATCH v5 2/6] rule.mak: allow per object cflags and libs, Fam Zheng, 2013/09/11
- [Qemu-devel] [RFC PATCH v5 3/6] Makefile: introduce common-obj-m and block-obj-m for DSO, Fam Zheng, 2013/09/11
- [Qemu-devel] [RFC PATCH v5 4/6] module: implement module loading function, Fam Zheng, 2013/09/11
- [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Fam Zheng, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules,
Paolo Bonzini <=
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Paolo Bonzini, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Gerd Hoffmann, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Fam Zheng, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Peter Maydell, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Gerd Hoffmann, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Peter Maydell, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Gerd Hoffmann, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Peter Maydell, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Fam Zheng, 2013/09/11
- Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules, Paolo Bonzini, 2013/09/11