From patchwork Thu Apr 19 13:58:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 133774 Delivered-To: patch@linaro.org Received: by 10.46.66.142 with SMTP id h14csp682520ljf; Thu, 19 Apr 2018 07:09:40 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqGGXipEEFjQo/a57i0F9R9p60YdnAM4mBCuO1FDEHYbB2LTxBRnLW7CrOLEHoc5SkC/0sL X-Received: by 10.55.190.1 with SMTP id o1mr6290978qkf.101.1524146980079; Thu, 19 Apr 2018 07:09:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524146980; cv=none; d=google.com; s=arc-20160816; b=WbkSADA+Q6D5FeMolWbJhfRZ7JxDYqsmPTEl9iSGhY5YkaSXCkYvZRbTPDIqTqS0/8 VtQBabvPoxJpH166PdtpuPQkdLJYG8q/9dSAzk95uBu5Pc3YENhul8tA9Z6edPMGIuDv yCStzQ1uKePKnOlTS5YUGo43JYhcdIeCU8UDnYV/cMRsQLYXZ94rqC4z0TxKaeGWSzwR RAA0S4z1UrByEeQ8bSlrulFkzn7H3TSnOnwLaTYglSUm73SV/qQp42NIaTXZm667aXoy OxA9/WZnFyEo975m/w4aQDMxPVuwNdMtIyXKewS9/v02KN8Jcp5NQswRMkgNktqp+Byh J0Qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=zpwPN3kyB3DuJjgTSr0MdWqWfN/WdXQL2Vc5hgHFh/0=; b=IHL9ygu0Qjgdc5F+Eqpu/hL9ey3mGfs4Z/p0gSPK0TpqOkbEVk2vbSdOJ52VKUVy+J FFoZL+CHL04TOR8FrS8Wx4opR1DBwqAME9MYlXoPwr01gJDqyLhqPlb+Q35GQjMUn/Ul wt4quEsubisowQzBYrSFPTJvRrYp2VqOSUDBOGhL34lXczPI2jWAPdOOkWxIhNgBUBCx k29osiQpVdz2jeCFlkY/oCg/7saetNGw++wNcTqn3SwEjRjDV+t9+80vj+uY8D77ycvB VI3vhDZ7Hy4cQOHcwDGtRYGU+XAMpx6k1YR7p5IgrNe1/a68o6CyWsGoxUI4TR3VWHkn 2qVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=SJ3UZoif; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id d3-v6si1185304qtd.57.2018.04.19.07.09.39 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 19 Apr 2018 07:09:40 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=SJ3UZoif; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:50000 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9AFn-0005wR-F4 for patch@linaro.org; Thu, 19 Apr 2018 10:09:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42826) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9A5q-00069b-CS for qemu-devel@nongnu.org; Thu, 19 Apr 2018 09:59:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9A5p-0002dY-4O for qemu-devel@nongnu.org; Thu, 19 Apr 2018 09:59:22 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:37488) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f9A5o-0002bI-Qu for qemu-devel@nongnu.org; Thu, 19 Apr 2018 09:59:21 -0400 Received: by mail-wr0-x242.google.com with SMTP id f14-v6so14351717wre.4 for ; Thu, 19 Apr 2018 06:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zpwPN3kyB3DuJjgTSr0MdWqWfN/WdXQL2Vc5hgHFh/0=; b=SJ3UZoifxIJatn5b4jONGf4LCaCYkvlqBreWuohOrN/vTxWdvRj+sWIErE0M++oPZr OPoFoGC2ZATRTyLt56bcl065vUqDtMJQfeUTcRHI4W2sztIjuZRIOm+zvRE703AIlixW zYvGCRT3IuDGJmApFvK4Ljfh7/Q0KFQ/qdSSk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zpwPN3kyB3DuJjgTSr0MdWqWfN/WdXQL2Vc5hgHFh/0=; b=os+mge/FT94FI+mF0EV2UdZ3JLKV73wn1gjEE/xukBrcHudBMEsy6FGgcBzCSZdSaQ SYuSCbLRD2/pb3nTHt4INEhs2YArShbrBq9FStNrQ4JiQJ0vxERSYSR4HrWcJNdrlQ58 ODDu6F0J6coSZQHlYvbyYawuePn3zYn829EKzWKr8+/BkbkiVxnkJE/R3u7/fi3FpuHH Ss1LebOOI1oRjHbTRRBQpEqJmK6qZTLgWMN23v3FA45MQzQnXxG6c4DKNlxvpe+e1rzz RHZIEguu2FBXaT8nkXqzy0QOvNbwnE2BAcx2JqrcXN/jkOmiIqe3E9VpmX7raMkNWnhT z7ig== X-Gm-Message-State: ALQs6tAbxsFxhbwuGPUdYWeDGoAom1zQMhxFSQQtNrYXu4G8ywN0gj12 x+2KwXbyhlA/N0mHyNGqFSVmYHwjy94= X-Received: by 10.28.141.148 with SMTP id p142mr4878133wmd.50.1524146359638; Thu, 19 Apr 2018 06:59:19 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id c18sm3973969wmd.13.2018.04.19.06.59.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Apr 2018 06:59:17 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 2E5333E0916; Thu, 19 Apr 2018 14:59:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: peter.maydell@linaro.org, cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Thu, 19 Apr 2018 14:58:53 +0100 Message-Id: <20180419135901.30035-36-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180419135901.30035-1-alex.bennee@linaro.org> References: <20180419135901.30035-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PATCH v2 35/43] tests/tcg/Makefile: update to be called from Makefile.target X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This make is now invoked from each individual target make with the appropriate CC and EXTRA_CFLAGS set for each guest. It then includes additional Makefile.targets from: - tests/tcg/multiarch (always) - tests/tcg/$(TARGET_BASE_ARCH) (if available) - tests/tcg/$(TARGET_NAME) The order is important as the later Makefile's may want to suppress TESTS from it's base arch profile. Each included Makefile.target is responsible for adding TESTS as well as defining any special build instructions for individual tests. Signed-off-by: Alex Bennée --- v2 - cleaner approach to include sub makefiles - move TESTS/VPATH manipulation into sub-makefile - avoid double inclusion when TARGET_BASE_ARCH==TARGET_NAME --- tests/tcg/Makefile | 153 +++++++++++---------------------------------- 1 file changed, 38 insertions(+), 115 deletions(-) -- 2.17.0 diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile index e12395117a..b9291acc89 100644 --- a/tests/tcg/Makefile +++ b/tests/tcg/Makefile @@ -1,125 +1,48 @@ --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/LD to have been set for +# us from the parent make as well as being passed EXTRA_CFLAGS. +# +# 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 +# Tests we are building +TESTS= -QEMU_INCLUDES += -I../.. -CFLAGS=-Wall -O2 -g -fno-strict-aliasing -#CFLAGS+=-msse2 +# Start with a blank slate, the build targets get to add stuff first +CFLAGS= +QEMU_CFLAGS= LDFLAGS= -# TODO: automatically detect ARM and MIPS compilers, and run those too - -# runcom maps page 0, so it requires root privileges -# also, pi_10.com runs indefinitely - -I386_TESTS=hello-i386 \ - sha1-i386 \ - test-i386 \ - test-i386-fprem \ - # runcom - -# native i386 compilers sometimes are not biarch. assume cross-compilers are -ifneq ($(ARCH),i386) -I386_TESTS+=run-test-x86_64 -endif - -TESTS = test_path -ifneq ($(call find-in-path, $(CC_I386)),) -TESTS += $(I386_TESTS) +# The order we include is important. We include multiarch, base arch and finally 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 -all: $(patsubst %,run-%,$(TESTS)) -test: all - -# rules to run tests - -.PHONY: $(patsubst %,run-%,$(TESTS)) - -run-%: % - -$(QEMU) ./$* - -run-hello-i386: hello-i386 -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-runcom: runcom - -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com - -run-test_path: test_path - ./test_path - -# rules to compile tests - -hello-i386: hello-i386.c - $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $< - strip $@ - -# 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 $@ \ - $(