]> git.proxmox.com Git - mirror_qemu.git/commitdiff
tests/tcg: Add docker_as and docker_ld cmds
authorBastian Koppelmann <kbastian@mail.uni-paderborn.de>
Wed, 12 May 2021 10:20:31 +0000 (11:20 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Tue, 18 May 2021 08:36:21 +0000 (09:36 +0100)
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>

tests/tcg/Makefile.qemu
tests/tcg/configure.sh

index a56564660cfa3dc3f281cbfd6435387b9bd2618f..84c8543878bff136142eb8e76da590920c8a88a0 100644 (file)
@@ -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)")
index e6c1be5450f83539676e56223d60a3c7cbdf38c6..ed378e78407d7a21044881e014aad3137075ca30 100755 (executable)
@@ -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