From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 9/9] disas: Add capstone as submodule
Date: Mon, 02 Oct 2017 15:43:27 +0100 [thread overview]
Message-ID: <87y3otzk34.fsf@linaro.org> (raw)
In-Reply-To: <20170928165414.7339-10-richard.henderson@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> Do not require the submodule, but use it if present (in preference
> even to a system copy). This will allow us to easily use capstone
> in older systems for which a package is not available, and also
> easily track bug fixes from upstream.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> Makefile | 13 +++++++++++++
> .gitmodules | 3 +++
> capstone | 1 +
> configure | 12 +++++++++++-
> 4 files changed, 28 insertions(+), 1 deletion(-)
> create mode 160000 capstone
>
> diff --git a/Makefile b/Makefile
> index cee6e28659..7ff366f6ca 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -336,6 +336,19 @@ subdir-dtc:dtc/libfdt dtc/tests
> dtc/%:
> mkdir -p $@
>
> +# Overriding CFLAGS causes us to lose defines added in the sub-makefile.
> +# Not overriding CFLAGS leads to mis-matches between compilation modes.
> +# Therefore we replicate some of the logic in the sub-makefile.
> +CAP_CFLAGS = $(subst -Werror,,$(CFLAGS) $(QEMU_CFLAGS))
> +CAP_CFLAGS += -DCAPSTONE_USE_SYS_DYN_MEM
> +CAP_CFLAGS += -DCAPSTONE_HAS_ARM
> +CAP_CFLAGS += -DCAPSTONE_HAS_ARM64
> +CAP_CFLAGS += -DCAPSTONE_HAS_POWERPC
> +CAP_CFLAGS += -DCAPSTONE_HAS_X86
> +
> +subdir-capstone:
> + $(call quiet-command,$(MAKE) -C $(SRC_PATH)/capstone CAPSTONE_SHARED=no BUILDDIR="$(BUILD_DIR)/capstone" CC="$(CC)" AR="$(AR)" LD="$(LD)" CFLAGS="$(CAP_CFLAGS)" $(SUBDIR_MAKEFLAGS) $(BUILD_DIR)/capstone/libcapstone.a)
> +
> $(SUBDIR_RULES): libqemuutil.a $(common-obj-y) $(chardev-obj-y) \
> $(qom-obj-y) $(crypto-aes-obj-$(CONFIG_USER_ONLY))
>
> diff --git a/.gitmodules b/.gitmodules
> index 84c54cdc49..bcb80d701a 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -34,3 +34,6 @@
> [submodule "roms/QemuMacDrivers"]
> path = roms/QemuMacDrivers
> url = git://git.qemu.org/QemuMacDrivers.git
> +[submodule "capstone"]
> + path = capstone
> + url = https://github.com/aquynh/capstone.git
> diff --git a/capstone b/capstone
> new file mode 160000
> index 0000000000..a279481dbf
> --- /dev/null
> +++ b/capstone
> @@ -0,0 +1 @@
> +Subproject commit a279481dbfd54bb1e2336d771e89978cc6d43176
> diff --git a/configure b/configure
> index 3777db91b6..a6cf0a5a15 100755
> --- a/configure
> +++ b/configure
> @@ -4380,7 +4380,14 @@ fi
> # capstone
>
> if test "$capstone" != no; then
> - if $pkg_config capstone; then
> + if test -f ${source_path}/capstone/Makefile ; then
> + # have submodule capstone - use it
> + capstone=yes
> + capstone_internal=yes
> + mkdir -p capstone
Having a mkdir -p here seems a little out of place. Shouldn't the build
directory creation be handled by the make recipe?
> + QEMU_CFLAGS="$QEMU_CFLAGS -I\$(SRC_PATH)/capstone/include"
> + LIBS="\$(BUILD_DIR)/capstone/libcapstone.a $LIBS"
> + elif $pkg_config capstone; then
> capstone=yes
> QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags capstone)"
> LIBS="$($pkg_config --libs capstone) $LIBS"
> @@ -6596,6 +6603,9 @@ done # for target in $targets
> if [ "$dtc_internal" = "yes" ]; then
> echo "config-host.h: subdir-dtc" >> $config_host_mak
> fi
> +if [ "$capstone_internal" = "yes" ]; then
> + echo "config-host.h: subdir-capstone" >> $config_host_mak
> +fi
>
> if test "$numa" = "yes"; then
> echo "CONFIG_NUMA=y" >> $config_host_mak
--
Alex Bennée
next prev parent reply other threads:[~2017-10-02 14:43 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-28 16:54 [Qemu-devel] [PATCH v4 0/9] Support the Capstone disassembler Richard Henderson
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 1/9] target/i386: Convert to disas_set_info hook Richard Henderson
2017-10-02 12:56 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 2/9] target/ppc: " Richard Henderson
2017-10-02 12:56 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 3/9] disas: Remove unused flags arguments Richard Henderson
2017-10-02 12:56 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 4/9] disas: Support the Capstone disassembler library Richard Henderson
2017-10-02 13:36 ` Philippe Mathieu-Daudé
2017-10-02 18:34 ` Richard Henderson
2017-10-02 18:45 ` Philippe Mathieu-Daudé
2017-10-03 1:51 ` Richard Henderson
2017-10-03 13:45 ` Philippe Mathieu-Daudé
2017-10-02 14:40 ` Alex Bennée
2017-10-02 18:31 ` Richard Henderson
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 5/9] i386: Support Capstone in disas_set_info Richard Henderson
2017-10-02 13:37 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 6/9] arm: " Richard Henderson
2017-10-02 13:37 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 7/9] ppc: " Richard Henderson
2017-10-02 13:56 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 8/9] disas: Remove monitor_disas_is_physical Richard Henderson
2017-10-02 13:55 ` Philippe Mathieu-Daudé
2017-09-28 16:54 ` [Qemu-devel] [PATCH v4 9/9] disas: Add capstone as submodule Richard Henderson
2017-10-02 13:54 ` Philippe Mathieu-Daudé
2017-10-02 14:43 ` Alex Bennée [this message]
2017-10-02 18:27 ` Richard Henderson
2017-10-13 7:50 ` Alex Bennée
2017-10-12 12:34 ` [Qemu-devel] [PATCH v4 0/9] Support the Capstone disassembler Peter Maydell
2017-10-12 14:49 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y3otzk34.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.