qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]