qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org, berrange@redhat.com, cota@braap.org
Subject: Re: [Qemu-devel] [PATCH v1 22/24] tests/tcg/Makefile: update to be called from Makefile.target
Date: Thu, 12 Apr 2018 16:13:11 +0800	[thread overview]
Message-ID: <20180412081311.GD24896@lemon.usersys.redhat.com> (raw)
In-Reply-To: <20180410193919.28026-23-alex.bennee@linaro.org>

On Tue, 04/10 20:39, Alex Bennée wrote:
> This make is now invoked from each individual target make with the
> appropriate CC and ARCH set for each guest. It includes all the
> multiarch tests by default as well as any tests from
> tests/tcg/$(ARCH).
> 
> As there may be subtle additional requirements for building some of
> the tests it also includes tests/tcg/$(ARCH)/Makefile.target if it is
> available. This is distinct from tests/tcg/$(ARCH)/Makefile.include
> which is used by the parent make machinery to determine potential
> docker targets.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/tcg/Makefile | 185 ++++++++++++-----------------------------------------
>  1 file changed, 42 insertions(+), 143 deletions(-)
> 
> diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile
> index 89e3342f3d..2bba0d2a32 100644
> --- a/tests/tcg/Makefile
> +++ b/tests/tcg/Makefile
> @@ -1,156 +1,55 @@
> --include ../../config-host.mak
> --include $(SRC_PATH)/rules.mak
> +# -*- Mode: makefile -*-
> +#
> +# TCG tests
> +#
> +# These are complicated by the fact we want to build them for guest
> +# systems. This requires knowing what guests we are building and which
> +# ones we have cross-compilers for or docker images with
> +# cross-compilers.
> +#
> +# The tests themselves should be as minimal as possible as
> +# cross-compilers don't always have a large amount of libraries
> +# available.
> +#
> +# We only include the host build system for SRC_PATH and we don't
> +# bother with the common rules.mk. We expect CC to have been set for
> +# us from the parent make. We also expect to be in the tests build dir
> +# for the FOO-linux-user.
> +#
>  
> -$(call set-vpath, $(SRC_PATH)/tests/tcg)
> +-include ../../config-host.mak
> +-include ../config-target.mak
>  
> -QEMU=../../i386-linux-user/qemu-i386
> -QEMU_X86_64=../../x86_64-linux-user/qemu-x86_64
> -CC_X86_64=$(CC_I386) -m64
> +# Set search path for all sources
> +VPATH = $(SRC_PATH)/tests/tcg/multiarch
> +TEST_SRCS = $(wildcard $(SRC_PATH)/tests/tcg/multiarch/*.c)
>  
> -QEMU_INCLUDES += -I../..
> -CFLAGS=-Wall -O2 -g -fno-strict-aliasing
> -#CFLAGS+=-msse2
> -LDFLAGS=
> +VPATH     += $(SRC_PATH)/tests/tcg/$(ARCH)
> +TEST_SRCS += $(wildcard $(SRC_PATH)/tests/tcg/$(ARCH)/*.c)
>  
> -# TODO: automatically detect ARM and MIPS compilers, and run those too
> +SRCS=$(notdir ${TEST_SRCS})
> +TESTS=$(SRCS:.c=)
>  
> -# runcom maps page 0, so it requires root privileges
> -# also, pi_10.com runs indefinitely
> +# We use what ever CC we have
> +CFLAGS=-Wall -O0 -g -fno-strict-aliasing -static
> +QEMU_CFLAGS=
> +LDFLAGS=
>  
> -I386_TESTS=hello-i386 \
> -	   linux-test \
> -	   testthread \
> -	   sha1-i386 \
> -	   test-i386 \
> -	   test-i386-fprem \
> -	   test-mmap \
> -	   # runcom
> +# The per ARCH target makefile which might add specific compiler flags
> +# for some compilation targets.
>  
> -# native i386 compilers sometimes are not biarch.  assume cross-compilers are
> -ifneq ($(ARCH),i386)
> -I386_TESTS+=run-test-x86_64
> -endif
> +EXTRA_MAKEFILE=$(SRC_PATH)/tests/tcg/$(ARCH)/Makefile.target
> +CHECK_INCLUDE=$(wildcard $(EXTRA_MAKEFILE))
>  
> -TESTS = test_path
> -ifneq ($(call find-in-path, $(CC_I386)),)
> -TESTS += $(I386_TESTS)
> +ifeq ($(EXTRA_MAKEFILE),$(CHECK_INCLUDE))
> +include $(EXTRA_MAKEFILE)
>  endif
>  
> -all: $(patsubst %,run-%,$(TESTS))
> -test: all
> -
> -# rules to run tests
> -
> -.PHONY: $(patsubst %,run-%,$(TESTS))
> -
> -run-%: %
> -	-$(QEMU) ./$*
> -
> -run-hello-i386: hello-i386
> -run-linux-test: linux-test
> -run-testthread: testthread
> -run-sha1-i386: sha1-i386
> -
> -run-test-i386: test-i386
> -	./test-i386 > test-i386.ref
> -	-$(QEMU) test-i386 > test-i386.out
> -	@if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi
> -
> -run-test-i386-fprem: test-i386-fprem
> -	./test-i386-fprem > test-i386-fprem.ref
> -	-$(QEMU) test-i386-fprem > test-i386-fprem.out
> -	@if diff -u test-i386-fprem.ref test-i386-fprem.out ; then echo "Auto Test OK"; fi
> -
> -run-test-x86_64: test-x86_64
> -	./test-x86_64 > test-x86_64.ref
> -	-$(QEMU_X86_64) test-x86_64 > test-x86_64.out
> -	@if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; fi
> -
> -run-test-mmap: test-mmap
> -	-$(QEMU) ./test-mmap
> -	-$(QEMU) -p 8192 ./test-mmap 8192
> -	-$(QEMU) -p 16384 ./test-mmap 16384
> -	-$(QEMU) -p 32768 ./test-mmap 32768
> -
> -run-runcom: runcom
> -	-$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com
> -
> -run-test_path: test_path
> -	./test_path
> -
> -# rules to compile tests
> -
> -test_path: test_path.o
> -
> -test_path.o: test_path.c
> -
> -hello-i386: hello-i386.c
> -	$(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $<
> -	strip $@
> -
> -testthread: testthread.c
> -	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
> -
> -# i386/x86_64 emulation test (test various opcodes) */
> -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_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ \
> -              $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
> -
> -test-i386-fprem: test-i386-fprem.c
> -	$(CC_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $^
> -
> -test-x86_64: test-i386.c \
> -           test-i386.h test-i386-shift.h test-i386-muldiv.h
> -	$(CC_X86_64) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $(<D)/test-i386.c -lm
> -
> -# generic Linux and CPU test
> -linux-test: linux-test.c
> -	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
> -
> -# vm86 test
> -runcom: runcom.c
> -	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $<
> -
> -test-mmap: test-mmap.c
> -	$(CC_I386) -m32 $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $<
> -
> -# speed test
> -sha1-i386: sha1.c
> -	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $<
> -
> -sha1: sha1.c
> -	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
> -
> -speed: sha1 sha1-i386
> -	time ./sha1
> -	time $(QEMU) ./sha1-i386
> -
> -# arm test
> -hello-arm: hello-arm.o
> -	arm-linux-ld -o $@ $<
> -
> -hello-arm.o: hello-arm.c
> -	arm-linux-gcc -Wall -g -O2 -c -o $@ $<
> -
> -test-arm-iwmmxt: test-arm-iwmmxt.s
> -	cpp < $< | arm-linux-gnu-gcc -Wall -static -march=iwmmxt -mabi=aapcs -x assembler - -o $@
> -
> -# MIPS test
> -hello-mips: hello-mips.c
> -	mips-linux-gnu-gcc -nostdlib -static -mno-abicalls -fno-PIC -mabi=32 -Wall -Wextra -g -O2 -o $@ $<
> -
> -hello-mipsel: hello-mips.c
> -	mipsel-linux-gnu-gcc -nostdlib -static -mno-abicalls -fno-PIC -mabi=32 -Wall -Wextra -g -O2 -o $@ $<
> +testthread: LDFLAGS=-lpthread

I'm a bit curious why only testthread is left in this file but others are gone.

Fam

>  
> -# testsuite for the CRIS port.
> -test-cris:
> -	$(MAKE) -C cris check
> +%: %.c
> +	$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
>  
> -# testsuite for the LM32 port.
> -test-lm32:
> -	$(MAKE) -C lm32 check
> +all: $(TESTS)
>  
> -clean:
> -	rm -f *~ *.o test-i386.out test-i386.ref \
> -           test-x86_64.log test-x86_64.ref qruncom $(TESTS)
> +# There is no clean target, the calling make just rm's the tests build dir
> -- 
> 2.16.2
> 

  reply	other threads:[~2018-04-12  8:15 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-10 19:38 [Qemu-devel] [PATCH v1 00/24] fix building of tests/tcg Alex Bennée
2018-04-10 19:38 ` [Qemu-devel] [PATCH v1 01/24] configure: add test for docker availability Alex Bennée
2018-04-11  8:50   ` Fam Zheng
2018-04-11 10:58     ` Alex Bennée
2018-04-11 12:59       ` Fam Zheng
2018-04-10 19:38 ` [Qemu-devel] [PATCH v1 02/24] configure: add support for --cross-cc-FOO Alex Bennée
2018-04-16  2:04   ` Philippe Mathieu-Daudé
2018-04-16  8:49     ` Alex Bennée
2018-04-10 19:38 ` [Qemu-devel] [PATCH v1 03/24] configure: move i386_cc to cross_cc_i386 Alex Bennée
2018-04-16  0:01   ` Philippe Mathieu-Daudé
2018-04-16  9:02     ` Alex Bennée
2018-04-16 10:30       ` Philippe Mathieu-Daudé
2018-04-10 19:38 ` [Qemu-devel] [PATCH v1 04/24] Makefile: Rename TARGET_DIRS to TARGET_LIST Alex Bennée
2018-04-12 14:33   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 05/24] docker: Add "cc" subcommand Alex Bennée
2018-04-16  1:48   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 06/24] docker: extend "cc" command to accept compiler Alex Bennée
2018-04-12  8:07   ` Fam Zheng
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 07/24] docker: allow "cc" command to run in user context Alex Bennée
2018-04-12  8:08   ` Fam Zheng
2018-04-16  0:02   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 08/24] docker: Makefile.include introduce DOCKER_SCRIPT Alex Bennée
2018-04-11 15:10   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 09/24] tests/tcg: move architecture independent tests into subdir Alex Bennée
2018-04-11 10:22   ` Thomas Huth
2018-04-16  0:05   ` Philippe Mathieu-Daudé
2018-04-16  9:01     ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 10/24] tests/tcg/multiarch: Build fix for linux-test Alex Bennée
2018-04-11 10:25   ` Thomas Huth
     [not found]   ` <4bc22552-25b4-2a04-dc73-dc17201a2251@amsat.org>
     [not found]     ` <3b680ef4-3304-99d5-75ef-c4d5d570bb3a@amsat.org>
2018-04-16  8:51       ` Alex Bennée
2018-05-25 10:21       ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 11/24] tests/tcg: move i386 specific tests into subdir Alex Bennée
2018-04-11 10:30   ` Thomas Huth
2018-04-16  0:08   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 12/24] tests/tcg/i386: Build fix for hello-i386 Alex Bennée
2018-04-11 10:30   ` Thomas Huth
2018-04-16  0:11   ` Philippe Mathieu-Daudé
2018-04-16  8:57     ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 13/24] tests/tcg/i386: move test-i386-sse.c to tests/tcg/x86_64/test-sse.c Alex Bennée
2018-04-11 15:33   ` Thomas Huth
2018-04-11 16:19     ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 14/24] tests/tcg/i386: fix test-i386 Alex Bennée
2018-04-11 15:36   ` Thomas Huth
2018-04-16  0:13   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 15/24] tests/tcg/i368: fix hello-i386 Alex Bennée
2018-04-11 15:38   ` Thomas Huth
2018-04-16  0:14   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 16/24] tests/tcg/i386: fix test-i386-fprem Alex Bennée
2018-04-11 15:14   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 17/24] tests/tcg: move ARM specific tests into subdir Alex Bennée
2018-04-11 15:40   ` Thomas Huth
2018-04-16  0:14   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 18/24] tests/tcg/arm: fix hello-arm Alex Bennée
2018-04-11 15:42   ` Thomas Huth
2018-04-16  1:28   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 19/24] tests/tcg: move MIPS specific tests into subdir Alex Bennée
2018-04-16  1:02   ` Philippe Mathieu-Daudé
2018-04-16  1:33     ` Philippe Mathieu-Daudé
2018-04-16  8:56     ` Alex Bennée
2018-04-16 10:21       ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 20/24] tests/tcg: enable building for s390x Alex Bennée
2018-04-11  8:36   ` Cornelia Huck
2018-04-16  1:33   ` Philippe Mathieu-Daudé
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 21/24] tests/tcg: enable building for ppc64 Alex Bennée
2018-04-16  1:36   ` Philippe Mathieu-Daudé
2018-04-16  8:54     ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 22/24] tests/tcg/Makefile: update to be called from Makefile.target Alex Bennée
2018-04-12  8:13   ` Fam Zheng [this message]
2018-04-12  8:47     ` Alex Bennée
2018-04-12  9:14       ` Fam Zheng
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 23/24] Makefile.target: add (clean-)guest-tests targets Alex Bennée
2018-04-16  1:12   ` Philippe Mathieu-Daudé
2018-04-16  1:52   ` Philippe Mathieu-Daudé
2018-04-16  8:53     ` Alex Bennée
2018-04-16 10:24       ` Philippe Mathieu-Daudé
2018-04-16 17:14       ` Philippe Mathieu-Daudé
2018-04-16 20:08         ` Alex Bennée
2018-04-17 14:41           ` Philippe Mathieu-Daudé
2018-04-17 15:09             ` Alex Bennée
2018-04-10 19:39 ` [Qemu-devel] [PATCH v1 24/24] tests/Makefile.include: add (clean-)check-tcg targets Alex Bennée
2018-04-16  1:53   ` Philippe Mathieu-Daudé
2018-04-10 20:07 ` [Qemu-devel] [PATCH v1 00/24] fix building of tests/tcg no-reply
2018-04-16 10:37 ` Philippe Mathieu-Daudé

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=20180412081311.GD24896@lemon.usersys.redhat.com \
    --to=famz@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=cota@braap.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).