[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 11/31] tests/tcg: Add docker_as and docker_ld cmds
From: |
Alex Bennée |
Subject: |
[PATCH v3 11/31] tests/tcg: Add docker_as and docker_ld cmds |
Date: |
Wed, 12 May 2021 11:20:31 +0100 |
From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
At least for the TriCore target no easily available c compiler exists.
Thus we need to rely on "as" and "ld". This allows us to run them
through the docker image. We don't test the generation capabilities of
docker images as they are assumed to work.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
[AJB: fix quoting, only handle docker & clear, test -n, tweak commit msg]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v2
- only pass down AS/LD if defined
---
tests/tcg/Makefile.qemu | 17 +++++++++++++++++
tests/tcg/configure.sh | 17 ++++++++++++++++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/tests/tcg/Makefile.qemu b/tests/tcg/Makefile.qemu
index a56564660c..84c8543878 100644
--- a/tests/tcg/Makefile.qemu
+++ b/tests/tcg/Makefile.qemu
@@ -22,6 +22,8 @@ quiet-@ = $(if $(V),,@)
quiet-command = $(quiet-@)$(call quiet-command-run,$1,$2,$3)
CROSS_CC_GUEST:=
+CROSS_AS_GUEST:=
+CROSS_LD_GUEST:=
DOCKER_IMAGE:=
-include tests/tcg/config-$(TARGET).mak
@@ -42,6 +44,8 @@ cross-build-guest-tests:
$(call quiet-command, \
(mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
$(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC="$(CROSS_CC_GUEST)" \
+ $(if $(CROSS_AS_GUEST),AS="$(CROSS_AS_GUEST)") \
+ $(if $(CROSS_LD_GUEST),LD="$(CROSS_LD_GUEST)") \
SRC_PATH="$(SRC_PATH)"
BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
"BUILD","$(TARGET) guest-tests with $(CROSS_CC_GUEST)")
@@ -59,11 +63,24 @@ DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc \
-i qemu/$(DOCKER_IMAGE) \
-s $(SRC_PATH) -- "
+DOCKER_AS_CMD=$(if $(DOCKER_CROSS_AS_GUEST),"$(DOCKER_SCRIPT) cc \
+ --cc $(DOCKER_CROSS_AS_GUEST) \
+ -i qemu/$(DOCKER_IMAGE) \
+ -s $(SRC_PATH) -- ")
+
+DOCKER_LD_CMD=$(if $(DOCKER_CROSS_LD_GUEST),"$(DOCKER_SCRIPT) cc \
+ --cc $(DOCKER_CROSS_LD_GUEST) \
+ -i qemu/$(DOCKER_IMAGE) \
+ -s $(SRC_PATH) -- ")
+
+
.PHONY: docker-build-guest-tests
docker-build-guest-tests: docker-image-$(DOCKER_IMAGE)
$(call quiet-command, \
(mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
$(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC=$(DOCKER_COMPILE_CMD) \
+ $(if $(DOCKER_AS_CMD),AS=$(DOCKER_AS_CMD)) \
+ $(if $(DOCKER_LD_CMD),LD=$(DOCKER_LD_CMD)) \
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=y \
EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
"BUILD","$(TARGET) guest-tests with docker qemu/$(DOCKER_IMAGE)")
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index e6c1be5450..ed378e7840 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -75,7 +75,13 @@ fi
for target in $target_list; do
arch=${target%%-*}
+ # reset all container fields
container_image=
+ container_hosts=
+ container_cross_cc=
+ container_cross_as=
+ container_cross_ld=
+
case $target in
aarch64-*)
# We don't have any bigendian build tools so we only use this for AArch64
@@ -273,7 +279,16 @@ for target in $target_list; do
for host in $container_hosts; do
if test "$host" = "$ARCH"; then
echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
- echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >>
$config_target_mak
+ echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> \
+ $config_target_mak
+ if test -n "$container_cross_as"; then
+ echo "DOCKER_CROSS_AS_GUEST=$container_cross_as" >> \
+ $config_target_mak
+ fi
+ if test -n "$container_cross_ld"; then
+ echo "DOCKER_CROSS_LD_GUEST=$container_cross_ld" >> \
+ $config_target_mak
+ fi
fi
done
fi
--
2.20.1
- [PATCH v3 10/31] tests/docker: Added libbpf library to the docker files., (continued)
- [PATCH v3 10/31] tests/docker: Added libbpf library to the docker files., Alex Bennée, 2021/05/12
- [PATCH v3 12/31] tests/tcg: Run timeout cmds using --foreground, Alex Bennée, 2021/05/12
- [PATCH v3 15/31] configure: Emit HOST_CC to config-host.mak, Alex Bennée, 2021/05/12
- [PATCH v3 13/31] hw/tricore: Add testdevice for tests in tests/tcg/, Alex Bennée, 2021/05/12
- [PATCH v3 19/31] tests/tcg/tricore: Add dvstep test, Alex Bennée, 2021/05/12
- [PATCH v3 20/31] tests/tcg/tricore: Add fadd test, Alex Bennée, 2021/05/12
- [PATCH v3 24/31] tests/tcg/tricore: Add msub test, Alex Bennée, 2021/05/12
- [PATCH v3 22/31] tests/tcg/tricore: Add ftoi test, Alex Bennée, 2021/05/12
- [PATCH v3 29/31] tests/tcg: fix missing return, Alex Bennée, 2021/05/12
- [PATCH v3 11/31] tests/tcg: Add docker_as and docker_ld cmds,
Alex Bennée <=
- [PATCH v3 30/31] tests/tcg: don't allow clang as a cross compiler, Alex Bennée, 2021/05/12
- [PATCH v3 21/31] tests/tcg/tricore: Add fmul test, Alex Bennée, 2021/05/12
- [PATCH v3 17/31] tests/tcg/tricore: Add bmerge test, Alex Bennée, 2021/05/12
- [PATCH v3 31/31] configure: use cc, not host_cc to set cross_cc for build arch, Alex Bennée, 2021/05/12
- [PATCH v3 27/31] tests/tcg/ppc64le: tests for brh/brw/brd, Alex Bennée, 2021/05/12
- [PATCH v3 26/31] tests/docker: gcc-10 based images for ppc64{, le} tests, Alex Bennée, 2021/05/12
- [PATCH v3 14/31] tests/tcg/tricore: Add build infrastructure, Alex Bennée, 2021/05/12
- [PATCH v3 25/31] tests/tcg/tricore: Add muls test, Alex Bennée, 2021/05/12
- [PATCH v3 28/31] cirrus.yml: Fix the MSYS2 task, Alex Bennée, 2021/05/12
- [PATCH v3 16/31] tests/tcg/tricore: Add macros to create tests and first test 'abs', Alex Bennée, 2021/05/12