From mboxrd@z Thu Jan 1 00:00:00 1970 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) References: <20160829224920.16686-1-bobby.prani@gmail.com> <20160829224920.16686-4-bobby.prani@gmail.com> From: Alex =?utf-8?Q?Benn=C3=A9e?= 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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pranith Kumar Cc: qemu-devel@nongnu.org, Veronia Bahaa , Paolo Bonzini , rth@twiddle.net 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(-) 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 -- 2.9.3 -- Alex Bennée