tests/tcg: Add docker_as and docker_ld cmds
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>
This commit is contained in:
parent
6a7e70006a
commit
ac3c7c3f79
@ -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)")
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user