[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 10/29] tests/tcg: Add docker_as and docker_ld cmds
From: |
Alex Bennée |
Subject: |
[PULL v2 10/29] tests/tcg: Add docker_as and docker_ld cmds |
Date: |
Tue, 18 May 2021 10:07:01 +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>
Message-Id: <20210512102051.12134-12-alex.bennee@linaro.org>
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
- [PULL v2 00/29] testing and plugin updates, Alex Bennée, 2021/05/18
- [PULL v2 01/29] tests/docker: fix copying of executable in "update", Alex Bennée, 2021/05/18
- [PULL v2 02/29] tests/docker: make executable an optional argument to "update", Alex Bennée, 2021/05/18
- [PULL v2 03/29] tests/docker: allow "update" to add the current user, Alex Bennée, 2021/05/18
- [PULL v2 04/29] tests/docker: add "fetch" sub-command, Alex Bennée, 2021/05/18
- [PULL v2 06/29] tests/tcg: Use Hexagon Docker image, Alex Bennée, 2021/05/18
- [PULL v2 09/29] tests/docker: Added libbpf library to the docker files., Alex Bennée, 2021/05/18
- [PULL v2 13/29] tests/tcg/tricore: Add build infrastructure, Alex Bennée, 2021/05/18
- [PULL v2 10/29] tests/tcg: Add docker_as and docker_ld cmds,
Alex Bennée <=
- [PULL v2 05/29] docker: Add Hexagon image, Alex Bennée, 2021/05/18
- [PULL v2 07/29] gitlab: add build-user-hexagon test, Alex Bennée, 2021/05/18
- [PULL v2 08/29] tests/tcg: don't iterate through other arch compilers, Alex Bennée, 2021/05/18
- [PULL v2 12/29] hw/tricore: Add testdevice for tests in tests/tcg/, Alex Bennée, 2021/05/18
- [PULL v2 11/29] tests/tcg: Run timeout cmds using --foreground, Alex Bennée, 2021/05/18
- [PULL v2 16/29] tests/tcg/tricore: Add bmerge test, Alex Bennée, 2021/05/18
- [PULL v2 15/29] tests/tcg/tricore: Add macros to create tests and first test 'abs', Alex Bennée, 2021/05/18
- [PULL v2 19/29] tests/tcg/tricore: Add fadd test, Alex Bennée, 2021/05/18
- [PULL v2 26/29] tests/tcg/ppc64le: tests for brh/brw/brd, Alex Bennée, 2021/05/18
- [PULL v2 28/29] tests/tcg: don't allow clang as a cross compiler, Alex Bennée, 2021/05/18