From patchwork Fri Sep 9 16:04:30 2016 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: 75906 Delivered-To: patch@linaro.org Received: by 10.140.106.11 with SMTP id d11csp427513qgf; Fri, 9 Sep 2016 09:07:49 -0700 (PDT) X-Received: by 10.237.49.5 with SMTP id 5mr4810850qtg.136.1473437269759; Fri, 09 Sep 2016 09:07:49 -0700 (PDT) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id k2si2473558qkd.180.2016.09.09.09.07.49 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 09 Sep 2016 09:07:49 -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; 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 dis=NONE) header.from=linaro.org Received: from localhost ([::1]:58896 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biOLF-0005AI-AO for patch@linaro.org; Fri, 09 Sep 2016 12:07:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biOII-0003P7-IJ for qemu-devel@nongnu.org; Fri, 09 Sep 2016 12:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1biOID-0001Ro-Fo for qemu-devel@nongnu.org; Fri, 09 Sep 2016 12:04:46 -0400 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]:38877) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biOIC-0001RP-2K for qemu-devel@nongnu.org; Fri, 09 Sep 2016 12:04:41 -0400 Received: by mail-wm0-x234.google.com with SMTP id 1so41282114wmz.1 for ; Fri, 09 Sep 2016 09:04:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=tJtAtP4a/Hbmg4y2yyF3xRYSAkTjndN9KYRXMWNP2ms=; b=ZgYyC7NCZ8p3HT0rlSS2iiWFlmQVe2zETwa726Uc6wsX3AYiVc6nPiyWuVdB2rjbkw A8B5FvpqVQQVwV/dHg7NyYQzqvaaWQxXT/ZOXbadFwBe7kGDOJ3B82Y6sz77Rdd0+O1e Nf3wrNEYuzDQdv2ZjdoqUBzyEWSIVPGeKoN3s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=tJtAtP4a/Hbmg4y2yyF3xRYSAkTjndN9KYRXMWNP2ms=; b=RnGpkjWedjRzyIEJ+BaLgJpKcd1DO9tgb03MKT6hyQgBScERjDWV6nD7FYSQDTZTr5 jgMSm+QZRU4wpgnlA43egwtapblN7VWQIBYBFw86UlK6MzNX2fhUHazRDtht0M0fEQbH JFmAqUGs29YR6/3/NOXA4FKc0V0qQFVVbv8aN3NeI8CJZ08clRnLalw9h6xOGkJ3f6gw NJ0yWY8SppSJzpSW912qhjl0YVYIoWDlFj3MW4Nvf1ABx+L86Rg71BSsE7OAkO0LPIfb bWzMfwJIiizw8MKzZYbmz31JLm3d3YYNQN6QtRmP84BZSNJyM45sqw6JzXbeE8KDqAFn 3nqQ== X-Gm-Message-State: AE9vXwPPbFqkuhHnrtFvunA4GY0ARnjwE0c0Q1SSzhYi900zAceYLc3Gab7yUBtmi4unxn6i X-Received: by 10.194.172.229 with SMTP id bf5mr3960856wjc.37.1473437079195; Fri, 09 Sep 2016 09:04:39 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q142sm3239185wmd.4.2016.09.09.09.04.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Sep 2016 09:04:38 -0700 (PDT) Received: from zen (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTPS id E638B3E02FE; Fri, 9 Sep 2016 17:04:30 +0100 (BST) References: <20160829224920.16686-1-bobby.prani@gmail.com> <20160829224920.16686-4-bobby.prani@gmail.com> User-agent: mu4e 0.9.17; emacs 25.1.12 From: Alex =?utf-8?Q?Benn=C3=A9e?= To: Pranith Kumar In-reply-to: <20160829224920.16686-4-bobby.prani@gmail.com> Date: Fri, 09 Sep 2016 17:04:30 +0100 Message-ID: <87twdp3vqp.fsf@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::234 Subject: Re: [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests 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: Veronia Bahaa , Paolo Bonzini , qemu-devel@nongnu.org, rth@twiddle.net Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Pranith Kumar writes: > Signed-off-by: Pranith Kumar > --- > tests/tcg/misc/Makefile | 75 +++++++++++++++++++++++++++++++++++++++ > tests/tcg/{ => misc}/linux-test.c | 3 ++ > tests/tcg/{ => misc}/sha1.c | 0 > tests/tcg/{ => misc}/test-mmap.c | 0 > tests/tcg/{ => misc}/test_path.c | 0 > tests/tcg/{ => misc}/testthread.c | 0 > 6 files changed, 78 insertions(+) > create mode 100644 tests/tcg/misc/Makefile > rename tests/tcg/{ => misc}/linux-test.c (99%) > rename tests/tcg/{ => misc}/sha1.c (100%) > rename tests/tcg/{ => misc}/test-mmap.c (100%) > rename tests/tcg/{ => misc}/test_path.c (100%) > rename tests/tcg/{ => misc}/testthread.c (100%) > > diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile > new file mode 100644 > index 0000000..39c316b > --- /dev/null > +++ b/tests/tcg/misc/Makefile > @@ -0,0 +1,75 @@ > +BUILD_DIR=../../../build/ > +SRC_PATH=../../../ > +include $(BUILD_DIR)/config-host.mak > +include $(SRC_PATH)/rules.mak So the misc tests need to be called allowing change of compiler with setting CROSS_CC. The other tests need to test is ARCH (i.e. host architecture) matches in which case they can set CROSS_CC to CC. Otherwise they fail to build. See the following patch to get an idea, applies on top of your stuff but you'll want to squash it in as appropriate: >From c2dc6fa3abf49e6b430a980bd18101ab64a1fade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Fri, 9 Sep 2016 16:58:12 +0100 Subject: [PATCH] tcg/tests/misc/Makefile: a number of tweaks to roll up With this you can build with: mkdir aarch64-linux-user/tests cd aarch64-linux-user/tests CROSS_CC=aarch64-linux-gnu-gcc make -f ../../tests/tcg/misc/Makefile Things changed: - explicit about the BUILD_DIR and where we expect to be called - use config-host.mak to get SRC_DIR - use config-target.mak to get TARGET_NAME - use CROSS_CC instead of CC - disable test_path (these need re-writing in cross compile friendly non-glib) - only pass -I into QEMU src tree when needed --- tests/tcg/misc/Makefile | 53 ++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 23 deletions(-) -- 2.9.3 -- Alex Bennée diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile index 39c316b..57235df 100644 --- a/tests/tcg/misc/Makefile +++ b/tests/tcg/misc/Makefile @@ -1,28 +1,33 @@ -BUILD_DIR=../../../build/ -SRC_PATH=../../../ -include $(BUILD_DIR)/config-host.mak +# -*- Mode: makefile -*- +# +# Generic linux-user TCG tests +# +# These tests all use standard non-architecture specific APIs so can +# be built for all TCG targets. The Make is expected to be called in +# the ${BUILD_DIR}/$(TARGET_NAME_ARCH)-linux-user/tests directory +# +# To build for other architectures call make with CROSS_CC set +# + +BUILD_DIR=../.. +include $(BUILD_DIR)/config-host.mak # brings in SRC_PATH +include ../config-target.mak # TARGET_NAME include $(SRC_PATH)/rules.mak $(call set-vpath, $(SRC_PATH)/tests/tcg/misc) -QEMU=$(BUILD_DIR)/$(ARCH)-linux-user/qemu-$(ARCH) +QEMU=$(BUILD_DIR)/$(TARGET_NAME)-linux-user/qemu-$(TARGET_NAME) -QEMU_INCLUDES += -I$(BUILD_DIR) -CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I$(SRC_PATH)/include -I$(BUILD_DIR) -#CFLAGS+=-msse2 -LDFLAGS= - -# TODO: automatically detect ARM and MIPS compilers, and run those too +# Compiler set-up, default to system compiler if not set +CROSS_CC?=$(CC) -# runcom maps page 0, so it requires root privileges -# also, pi_10.com runs indefinitely +CFLAGS=-Wall -O2 -g -fno-strict-aliasing -static +LDFLAGS= TESTS=linux-test \ testthread \ sha1 \ - test-mmap \ - test_path - # runcom + test-mmap all: $(patsubst %,run-%,$(TESTS)) test: all @@ -47,25 +52,27 @@ run-test_path: test_path # rules to compile tests -test_path: test_path.o - $(CC) $^ -o $@ -lglib-2.0 -test_path.o: test_path.c - $(CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0` +# These two need to be re-written as relying on glib (rather than just glibc) +# test_path: test_path.o +# $(CROSS_CC) $^ -o $@ -lglib-2.0 + +# test_path.o: test_path.c +# $(CROSS_CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0` testthread: testthread.c - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread + $(CROSS_CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread # generic Linux and CPU test linux-test: linux-test.c - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm + $(CROSS_CC) $(CFLAGS) -I$(SRC_PATH)/include $(LDFLAGS) -o $@ $< -lm test-mmap: test-mmap.c - $(CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static + $(CROSS_CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static # speed test sha1: sha1.c - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< + $(CROSS_CC) $(CFLAGS) $(LDFLAGS) -o $@ $< speed: sha1 time ./sha1