From: "Alex Bennée" <alex.bennee@linaro.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/3] tests/tcg: cleanup Makefile inclusions
Date: Wed, 07 Aug 2019 14:05:50 +0100 [thread overview]
Message-ID: <87mugli0r5.fsf@linaro.org> (raw)
In-Reply-To: <20190730123759.21723-3-pbonzini@redhat.com>
Paolo Bonzini <pbonzini@redhat.com> writes:
> Rename Makefile.probe to Makefile.prereqs and make it actually
> define rules for the tests.
>
> Rename Makefile to Makefile.target, since it is not a toplevel
> makefile.
>
> Rename Makefile.include to Makefile.qemu and disentangle it
> from the QEMU Makefile.target, so that it is invoked recursively
> by tests/Makefile.include. Tests are now placed in
> tests/tcg/$(TARGET).
>
> Drop the usage of TARGET_BASE_ARCH, which is ignored by everything except
> x86_64 and aarch64. Fix x86 tests by using -cpu max and, while
> at it, standardize on QEMU_OPTS for aarch64 tests too.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> Makefile.target | 3 --
> tests/Makefile.include | 23 +++++++-----
> tests/tcg/{Makefile.probe => Makefile.prereqs} | 5 ++-
> tests/tcg/{Makefile.include => Makefile.qemu} | 48 +++++++++++++++-----------
> tests/tcg/{Makefile => Makefile.target} | 13 +++----
> tests/tcg/aarch64/Makefile.target | 12 ++++---
> tests/tcg/arm/Makefile.softmmu-target | 4 ---
> tests/tcg/i386/Makefile.softmmu-target | 8 -----
> tests/tcg/i386/Makefile.target | 13 +++----
> tests/tcg/x86_64/Makefile.softmmu-target | 36 +++++++++++++++++++
> tests/tcg/x86_64/Makefile.target | 7 ++--
> 11 files changed, 100 insertions(+), 72 deletions(-)
> rename tests/tcg/{Makefile.probe => Makefile.prereqs} (92%)
> rename tests/tcg/{Makefile.include => Makefile.qemu} (52%)
> rename tests/tcg/{Makefile => Makefile.target} (92%)
> create mode 100644 tests/tcg/x86_64/Makefile.softmmu-target
>
> diff --git a/Makefile.target b/Makefile.target
> index 933b274..5e91623 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -39,9 +39,6 @@ endif
> PROGS=$(QEMU_PROG) $(QEMU_PROGW)
> STPFILES=
>
> -# Makefile Tests
> -include $(SRC_PATH)/tests/tcg/Makefile.include
> -
So this looses the ability to run:
make run-guest-tests
in any given build directory. It would be useful to have a target that
could still get us there.
> config-target.h: config-target.h-timestamp
> config-target.h-timestamp: config-target.mak
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index fd7fdb8..8bb5c97 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -1061,23 +1061,28 @@ RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGET_DIRS))
> ifeq ($(HAVE_USER_DOCKER),y)
> # Probe for the Docker Builds needed for each build
> $(foreach PROBE_TARGET,$(TARGET_DIRS), \
> - $(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) \
> - $(if $(DOCKER_PREREQ), \
> - $(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
> + $(eval -include $(SRC_PATH)/tests/tcg/Makefile.prereqs))
> endif
>
> build-tcg-tests-%:
> - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
> - SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
> + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
> + -f $(SRC_PATH)/tests/tcg/Makefile.qemu \
> + SRC_PATH=$(SRC_PATH) \
> + V="$(V)" TARGET_DIR="$*/" guest-tests, \
> "BUILD", "TCG tests for $*")
>
> -run-tcg-tests-%: % build-tcg-tests-%
> - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
> - SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
> +run-tcg-tests-%: build-tcg-tests-% %/all
> + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
> + -f $(SRC_PATH)/tests/tcg/Makefile.qemu \
> + SRC_PATH=$(SRC_PATH) SPEED="$(SPEED)" \
> + V="$(V)" TARGET_DIR="$*/" run-guest-tests, \
> "RUN", "TCG tests for $*")
>
> clean-tcg-tests-%:
> - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,)
> + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
> + -f $(SRC_PATH)/tests/tcg/Makefile.qemu \
> + SRC_PATH=$(SRC_PATH) TARGET_DIR="$*/" clean-guest-tests, \
> + "RUN", "TCG tests for $*")
>
> .PHONY: build-tcg
> build-tcg: $(BUILD_TCG_TARGET_RULES)
> diff --git a/tests/tcg/Makefile.probe b/tests/tcg/Makefile.prereqs
> similarity index 92%
> rename from tests/tcg/Makefile.probe
> rename to tests/tcg/Makefile.prereqs
> index 9dc6546..53b0196 100644
> --- a/tests/tcg/Makefile.probe
> +++ b/tests/tcg/Makefile.prereqs
> @@ -8,20 +8,19 @@
> # each target.
>
> # First we need the target makefile which tells us the target architecture
> +CROSS_CC_GUEST:=
> -include $(BUILD_DIR)/$(PROBE_TARGET)/config-target.mak
>
> # Then we load up the target architecture makefiles which tell us
> # about the compilers
> -CROSS_CC_GUEST:=
> DOCKER_IMAGE:=
> -DOCKER_PREREQ:=
>
> -include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include
> -include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include
>
> ifndef CROSS_CC_GUEST
> ifneq ($(DOCKER_IMAGE),)
> -DOCKER_PREREQ:=docker-image-$(DOCKER_IMAGE)
> +build-tcg-tests-$(PROBE_TARGET): docker-image-$(DOCKER_IMAGE)
> endif
> endif
>
> diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.qemu
> similarity index 52%
> rename from tests/tcg/Makefile.include
> rename to tests/tcg/Makefile.qemu
> index 73b5626..d3f3437 100644
> --- a/tests/tcg/Makefile.include
> +++ b/tests/tcg/Makefile.qemu
> @@ -2,20 +2,23 @@
> #
> # TCG tests (per-target rules)
> #
> -# This Makefile fragment is included from the per-target
> -# Makefile.target so will be invoked for each linux-user program we
> -# build. We have two options for compiling, either using a configured
> -# guest compiler or calling one of our docker images to do it for us.
> +# This Makefile fragment is included from the build-tcg target, once
> +# for each target we build. We have two options for compiling, either
> +# using a configured guest compiler or calling one of our docker images
> +# to do it for us.
> #
>
> # The per ARCH makefile, if it exists, holds extra information about
> # useful docker images or alternative compiler flags.
>
> --include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include
> --include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include
> +include $(TARGET_DIR)config-target.mak
> +include $(SRC_PATH)/rules.mak
> +include $(wildcard \
> + $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include \
> + $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include)
>
> GUEST_BUILD=
> -TCG_MAKE=$(SRC_PATH)/tests/tcg/Makefile
> +TCG_MAKE=../Makefile.target
> # Support installed Cross Compilers
>
> ifdef CROSS_CC_GUEST
> @@ -23,9 +26,9 @@ ifdef CROSS_CC_GUEST
> .PHONY: cross-build-guest-tests
> cross-build-guest-tests:
> $(call quiet-command, \
> - (mkdir -p tests && cd tests && \
> - $(MAKE) -f $(TCG_MAKE) CC=$(CROSS_CC_GUEST) \
> - BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
> + (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
> + $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC="$(CROSS_CC_GUEST)" \
> + SRC_PATH="$(SRC_PATH)" BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
> EXTRA_CFLAGS=$(CROSS_CC_GUEST_CFLAGS)), \
> "BUILD","$(TARGET_NAME) guest-tests with $(CROSS_CC_GUEST)")
>
> @@ -39,20 +42,20 @@ ifeq ($(HAVE_USER_DOCKER)$(GUEST_BUILD),y)
> ifneq ($(DOCKER_IMAGE),)
>
> # We also need the Docker make rules to depend on
> +SKIP_DOCKER_BUILD=1
> include $(SRC_PATH)/tests/docker/Makefile.include
>
> DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc --user $(shell id -u) \
> --cc $(DOCKER_CROSS_COMPILER) \
> -i qemu:$(DOCKER_IMAGE) \
> -s $(SRC_PATH) -- "
> -DOCKER_PREREQ=docker-image-$(DOCKER_IMAGE)
>
> .PHONY: docker-build-guest-tests
> -docker-build-guest-tests: $(DOCKER_PREREQ)
> +docker-build-guest-tests: docker-image-$(DOCKER_IMAGE)
> $(call quiet-command, \
> - (mkdir -p tests && cd tests && \
> - $(MAKE) -f $(TCG_MAKE) CC=$(DOCKER_COMPILE_CMD) \
> - BUILD_STATIC=y \
> + (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
> + $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC=$(DOCKER_COMPILE_CMD) \
> + SRC_PATH="$(SRC_PATH)" BUILD_STATIC=y \
> EXTRA_CFLAGS=$(DOCKER_CROSS_COMPILER_CFLAGS)), \
> "BUILD","$(TARGET_NAME) guest-tests with docker qemu:$(DOCKER_IMAGE)")
>
> @@ -62,27 +65,32 @@ endif
> endif
>
> # Final targets
> +all:
> + @echo "Do not invoke this Makefile directly"; exit 1
> +
> .PHONY: guest-tests
>
> ifneq ($(GUEST_BUILD),)
> guest-tests: $(GUEST_BUILD)
>
> -run-guest-tests: guest-tests qemu-$(subst y,system-,$(CONFIG_SOFTMMU))$(TARGET_NAME)
> +run-guest-tests: guest-tests
> $(call quiet-command, \
> - (cd tests && $(MAKE) -f $(TCG_MAKE) SPEED=$(SPEED) run), \
> + (cd tests/tcg/$(TARGET_DIR) && \
> + $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" \
> + SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run), \
> "RUN", "tests for $(TARGET_NAME)")
>
> else
> guest-tests:
> $(call quiet-command, /bin/true, "BUILD", \
> - "$(TARGET_NAME) guest-tests SKIPPED")
> + "$(TARGET_DIR) guest-tests SKIPPED")
>
> run-guest-tests:
> $(call quiet-command, /bin/true, "RUN", \
> - "tests for $(TARGET_NAME) SKIPPED")
> + "tests for $(TARGET_DIR) SKIPPED")
> endif
>
> # It doesn't matter if these don't exits
> .PHONY: clean-guest-tests
> clean-guest-tests:
> - rm -rf tests || echo "no $(TARGET_NAME) tests to remove"
> + rm -rf tests/tcg/$(TARGET_DIR)
> diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile.target
> similarity index 92%
> rename from tests/tcg/Makefile
> rename to tests/tcg/Makefile.target
> index 9f56768..8dbcba4 100644
> --- a/tests/tcg/Makefile
> +++ b/tests/tcg/Makefile.target
> @@ -29,8 +29,9 @@
> # We also expect to be in the tests build dir for the FOO-(linux-user|softmmu).
> #
>
> +all:
> -include ../../config-host.mak
> --include ../config-target.mak
> +-include ../../../$(TARGET_DIR)/config-target.mak
>
> # for including , in command strings
> COMMA := ,
> @@ -64,9 +65,9 @@ LDFLAGS=
>
> # The QEMU for this TARGET
> ifdef CONFIG_USER_ONLY
> -QEMU=../qemu-$(TARGET_NAME)
> +QEMU=../../../$(TARGET_DIR)/qemu-$(TARGET_NAME)
> else
> -QEMU=../qemu-system-$(TARGET_NAME)
> +QEMU=../../../$(TARGET_DIR)/qemu-system-$(TARGET_NAME)
> endif
> QEMU_OPTS=
>
> @@ -82,10 +83,7 @@ ifdef CONFIG_USER_ONLY
> # The order we include is important. We include multiarch, base arch
> # and finally arch if it's not the same as base arch.
> -include $(SRC_PATH)/tests/tcg/multiarch/Makefile.target
> --include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.target
> -ifneq ($(TARGET_BASE_ARCH),$(TARGET_NAME))
> -include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target
> -endif
Comment above needs fixing up.
>
> # Add the common build options
> CFLAGS+=-Wall -O0 -g -fno-strict-aliasing
> @@ -101,10 +99,7 @@ else
> # are expected to provide their own build recipes.
> -include $(SRC_PATH)/tests/tcg/minilib/Makefile.target
> -include $(SRC_PATH)/tests/tcg/multiarch/system/Makefile.softmmu-target
> --include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.softmmu-target
> -ifneq ($(TARGET_BASE_ARCH),$(TARGET_NAME))
> -include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.softmmu-target
> -endif
>
> endif
>
> diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
> index 31ba9cf..e763dd9 100644
> --- a/tests/tcg/aarch64/Makefile.target
> +++ b/tests/tcg/aarch64/Makefile.target
> @@ -2,12 +2,14 @@
> #
> # AArch64 specific tweaks
>
> +ARM_SRC=$(SRC_PATH)/tests/tcg/arm
> +VPATH += $(ARM_SRC)
> +
> AARCH64_SRC=$(SRC_PATH)/tests/tcg/aarch64
> VPATH += $(AARCH64_SRC)
>
> -# we don't build any of the ARM tests
> -AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS))
> -AARCH64_TESTS+=fcvt
> +# we don't build any other ARM test
> +AARCH64_TESTS=fcvt
>
> fcvt: LDFLAGS+=-lm
>
> @@ -16,6 +18,6 @@ run-fcvt: fcvt
> $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
>
> AARCH64_TESTS += pauth-1 pauth-2
> -run-pauth-%: QEMU += -cpu max
> +run-pauth-%: QEMU_OPTS += -cpu max
>
> -TESTS:=$(AARCH64_TESTS)
> +TESTS += $(AARCH64_TESTS)
> diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target
> index 2deb06e..231e9a5 100644
> --- a/tests/tcg/arm/Makefile.softmmu-target
> +++ b/tests/tcg/arm/Makefile.softmmu-target
> @@ -3,8 +3,6 @@
> # ARM SoftMMU tests - included from tests/tcg/Makefile
> #
>
> -ifeq ($(TARGET_ABI_DIR),arm)
> -
> ARM_SRC=$(SRC_PATH)/tests/tcg/arm
>
> # Set search path for all sources
> @@ -25,5 +23,3 @@ LDFLAGS+=-nostdlib -N -static
> test-armv6m-undef: EXTRA_CFLAGS+=-mcpu=cortex-m0
>
> run-test-armv6m-undef: QEMU_OPTS+=-semihosting -M microbit -kernel
> -
> -endif
> diff --git a/tests/tcg/i386/Makefile.softmmu-target b/tests/tcg/i386/Makefile.softmmu-target
> index cee3420..1c8790e 100644
> --- a/tests/tcg/i386/Makefile.softmmu-target
> +++ b/tests/tcg/i386/Makefile.softmmu-target
> @@ -12,17 +12,9 @@ X64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/x86_64/system
> # These objects provide the basic boot code and helper functions for all tests
> CRT_OBJS=boot.o
>
> -ifeq ($(TARGET_X86_64), y)
> -CRT_PATH=$(X64_SYSTEM_SRC)
> -CFLAGS=-march=x86-64
> -LINK_SCRIPT=$(X64_SYSTEM_SRC)/kernel.ld
> -LDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_x86_64
> -else
> CRT_PATH=$(I386_SYSTEM_SRC)
> -CFLAGS+=-m32
> LINK_SCRIPT=$(I386_SYSTEM_SRC)/kernel.ld
> LDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_i386
> -endif
> CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
> LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
>
> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
> index d0eb702..08c5736 100644
> --- a/tests/tcg/i386/Makefile.target
> +++ b/tests/tcg/i386/Makefile.target
> @@ -6,14 +6,11 @@ I386_SRC=$(SRC_PATH)/tests/tcg/i386
> VPATH += $(I386_SRC)
>
> I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
> -I386_TESTS=$(I386_SRCS:.c=)
> -I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS))
> +ALL_X86_TESTS=$(I386_SRCS:.c=)
> +I386_TESTS:=$(filter-out test-i386-ssse3, $(ALL_X86_TESTS))
> +X86_64_TESTS:=$(filter test-i386-ssse3, $(ALL_X86_TESTS))
> # Update TESTS
> -TESTS+=$(I386_ONLY_TESTS)
> -
> -ifneq ($(TARGET_NAME),x86_64)
> -CFLAGS+=-m32
> -endif
> +TESTS=$(MULTIARCH_TESTS) $(I386_TESTS)
>
> #
> # hello-i386 is a barebones app
> @@ -26,7 +23,7 @@ hello-i386: LDFLAGS+=-nostdlib
> #
>
> test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
> - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
> + $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_CFLAGS) -o $@ \
> $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
>
> ifeq ($(SPEED), slow)
> diff --git a/tests/tcg/x86_64/Makefile.softmmu-target b/tests/tcg/x86_64/Makefile.softmmu-target
> new file mode 100644
> index 0000000..df252e7
> --- /dev/null
> +++ b/tests/tcg/x86_64/Makefile.softmmu-target
> @@ -0,0 +1,36 @@
> +#
> +# x86 system tests
> +#
> +# This currently builds only for i386. The common C code is built
> +# with standard compiler flags however so we can support both by
> +# adding additional boot files for x86_64.
> +#
> +
> +I386_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/i386/system
I think this is redundant now...
> +X64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/x86_64/system
> +
> +# These objects provide the basic boot code and helper functions for all tests
> +CRT_OBJS=boot.o
> +
> +CRT_PATH=$(X64_SYSTEM_SRC)
> +LINK_SCRIPT=$(X64_SYSTEM_SRC)/kernel.ld
> +LDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_x86_64
> +CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
> +LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
> +
> +TESTS+=$(MULTIARCH_TESTS)
> +
> +# building head blobs
> +.PRECIOUS: $(CRT_OBJS)
> +
> +%.o: $(CRT_PATH)/%.S
> + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
> +
> +# Build and link the tests
> +%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
> + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
> +
> +memory: CFLAGS+=-DCHECK_UNALIGNED=1
> +
> +# Running
> +QEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel
> diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target
> index 74f170b..20bf962 100644
> --- a/tests/tcg/x86_64/Makefile.target
> +++ b/tests/tcg/x86_64/Makefile.target
> @@ -6,9 +6,10 @@
> # $(SRC)/tests/tcg/i386/
> #
>
> -X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS))
> -X86_64_TESTS+=test-x86_64
> -TESTS:=$(X86_64_TESTS)
> +include $(SRC_PATH)/tests/tcg/i386/Makefile.target
> +
> +TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64
> +QEMU_OPTS += -cpu max
>
> test-x86_64: LDFLAGS+=-lm -lc
> test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h
--
Alex Bennée
next prev parent reply other threads:[~2019-08-07 13:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-30 12:37 [Qemu-devel] [PATCH 0/3] tests/tcg: disentangle makefiles Paolo Bonzini
2019-07-30 12:37 ` [Qemu-devel] [PATCH 1/3] tests/tcg: use EXTRA_CFLAGS everywhere Paolo Bonzini
2019-08-07 12:51 ` Alex Bennée
2019-08-07 13:10 ` Paolo Bonzini
2019-07-30 12:37 ` [Qemu-devel] [PATCH 2/3] tests/tcg: cleanup Makefile inclusions Paolo Bonzini
2019-07-30 12:44 ` Philippe Mathieu-Daudé
2019-07-30 13:21 ` Paolo Bonzini
2019-08-07 13:05 ` Alex Bennée [this message]
2019-08-07 13:11 ` Paolo Bonzini
2019-07-30 12:37 ` [Qemu-devel] [PATCH 3/3] tests/tcg: move configuration to a sub-shell script Paolo Bonzini
2019-08-07 12:42 ` Alex Bennée
2019-08-07 13:10 ` Alex Bennée
2019-08-07 13:26 ` Paolo Bonzini
2019-07-30 12:53 ` [Qemu-devel] [PATCH 0/3] tests/tcg: disentangle makefiles no-reply
2019-08-07 12:40 ` Alex Bennée
2019-08-07 13:06 ` Paolo Bonzini
2019-08-07 13:33 ` Eric Blake
2019-08-07 14:30 ` Paolo Bonzini
2019-08-07 16:38 ` Alex Bennée
2019-08-07 16:58 ` Paolo Bonzini
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=87mugli0r5.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.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.