tests/tcg: enable cris base user-mode tests
This converts the existing Makefile into a Makefile.target and updates it so it can be called by the tcg build system. The original Makefile didn't set -cpu except for the v17 tests however that has broken (I assume because linux-user is a "max" cpu) so here I force it to be crisv17. I've also replicated the GNU simulator targets (run-FOO-on-sim). Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
f17365f518
commit
d72132c02e
@ -116,6 +116,7 @@ docker-image-tricore-cross: docker-image-debian9
|
||||
DOCKER_PARTIAL_IMAGES += debian-alpha-cross debian-hppa-cross debian-m68k-cross debian-sh4-cross
|
||||
DOCKER_PARTIAL_IMAGES += debian-sparc64-cross debian-mips64-cross debian-riscv64-cross
|
||||
DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross fedora-i386-cross
|
||||
DOCKER_PARTIAL_IMAGES += fedora-cris-cross
|
||||
|
||||
# Rules for building linux-user powered images
|
||||
#
|
||||
|
@ -1,168 +0,0 @@
|
||||
-include ../../../config-host.mak
|
||||
|
||||
CROSS=crisv32-axis-linux-gnu-
|
||||
SIM=../../../cris-linux-user/qemu-cris -L ./
|
||||
SIMG=cris-axis-linux-gnu-run --sysroot=./
|
||||
|
||||
CC = $(CROSS)gcc
|
||||
#AS = $(CROSS)as
|
||||
AS = $(CC) -x assembler-with-cpp
|
||||
SIZE = $(CROSS)size
|
||||
LD = $(CC)
|
||||
OBJCOPY = $(CROSS)objcopy
|
||||
|
||||
# we rely on GCC inline:ing the stuff we tell it to in many places here.
|
||||
CFLAGS = -Winline -Wall -g -O2 -static
|
||||
NOSTDFLAGS = -nostartfiles -nostdlib
|
||||
ASFLAGS += -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/
|
||||
LDLIBS =
|
||||
NOSTDLIBS = -lgcc
|
||||
|
||||
CRT = crt.o
|
||||
SYS = sys.o
|
||||
TESTCASES += check_abs.tst
|
||||
TESTCASES += check_addc.tst
|
||||
TESTCASES += check_addcm.tst
|
||||
TESTCASES += check_addcv17.tst
|
||||
TESTCASES += check_addo.tst
|
||||
TESTCASES += check_addoq.tst
|
||||
TESTCASES += check_addi.tst
|
||||
TESTCASES += check_addiv32.tst
|
||||
TESTCASES += check_addm.tst
|
||||
TESTCASES += check_addr.tst
|
||||
TESTCASES += check_addq.tst
|
||||
TESTCASES += check_addxc.tst
|
||||
TESTCASES += check_addxm.tst
|
||||
TESTCASES += check_addxr.tst
|
||||
TESTCASES += check_andc.tst
|
||||
TESTCASES += check_andm.tst
|
||||
TESTCASES += check_andr.tst
|
||||
TESTCASES += check_andq.tst
|
||||
TESTCASES += check_asr.tst
|
||||
TESTCASES += check_ba.tst
|
||||
TESTCASES += check_bas.tst
|
||||
TESTCASES += check_bcc.tst
|
||||
TESTCASES += check_bound.tst
|
||||
TESTCASES += check_boundc.tst
|
||||
TESTCASES += check_boundr.tst
|
||||
TESTCASES += check_btst.tst
|
||||
TESTCASES += check_clearfv32.tst
|
||||
TESTCASES += check_cmpc.tst
|
||||
TESTCASES += check_cmpr.tst
|
||||
TESTCASES += check_cmpq.tst
|
||||
TESTCASES += check_cmpm.tst
|
||||
TESTCASES += check_cmpxc.tst
|
||||
TESTCASES += check_cmpxm.tst
|
||||
TESTCASES += check_cmp-2.tst
|
||||
TESTCASES += check_clrjmp1.tst
|
||||
TESTCASES += check_dstep.tst
|
||||
TESTCASES += check_ftag.tst
|
||||
TESTCASES += check_int64.tst
|
||||
# check_jsr is broken.
|
||||
#TESTCASES += check_jsr.tst
|
||||
TESTCASES += check_mcp.tst
|
||||
TESTCASES += check_movei.tst
|
||||
TESTCASES += check_mover.tst
|
||||
TESTCASES += check_moverm.tst
|
||||
TESTCASES += check_moveq.tst
|
||||
TESTCASES += check_movemr.tst
|
||||
TESTCASES += check_movemrv32.tst
|
||||
TESTCASES += check_movecr.tst
|
||||
TESTCASES += check_movmp.tst
|
||||
TESTCASES += check_movpr.tst
|
||||
TESTCASES += check_movprv32.tst
|
||||
TESTCASES += check_movdelsr1.tst
|
||||
TESTCASES += check_movpmv32.tst
|
||||
TESTCASES += check_movsr.tst
|
||||
TESTCASES += check_movsm.tst
|
||||
TESTCASES += check_movscr.tst
|
||||
TESTCASES += check_movur.tst
|
||||
TESTCASES += check_movum.tst
|
||||
TESTCASES += check_movucr.tst
|
||||
TESTCASES += check_mulx.tst
|
||||
TESTCASES += check_mulv32.tst
|
||||
TESTCASES += check_neg.tst
|
||||
TESTCASES += check_not.tst
|
||||
TESTCASES += check_lz.tst
|
||||
TESTCASES += check_lapc.tst
|
||||
TESTCASES += check_lsl.tst
|
||||
TESTCASES += check_lsr.tst
|
||||
TESTCASES += check_orc.tst
|
||||
TESTCASES += check_orm.tst
|
||||
TESTCASES += check_orr.tst
|
||||
TESTCASES += check_orq.tst
|
||||
TESTCASES += check_ret.tst
|
||||
TESTCASES += check_swap.tst
|
||||
TESTCASES += check_scc.tst
|
||||
TESTCASES += check_subc.tst
|
||||
TESTCASES += check_subq.tst
|
||||
TESTCASES += check_subr.tst
|
||||
TESTCASES += check_subm.tst
|
||||
TESTCASES += check_glibc_kernelversion.tst
|
||||
TESTCASES += check_xarith.tst
|
||||
|
||||
TESTCASES += check_hello.ctst
|
||||
TESTCASES += check_stat1.ctst
|
||||
TESTCASES += check_stat2.ctst
|
||||
TESTCASES += check_stat3.ctst
|
||||
TESTCASES += check_stat4.ctst
|
||||
TESTCASES += check_openpf1.ctst
|
||||
TESTCASES += check_openpf2.ctst
|
||||
TESTCASES += check_openpf3.ctst
|
||||
TESTCASES += check_openpf5.ctst
|
||||
TESTCASES += check_mapbrk.ctst
|
||||
TESTCASES += check_mmap1.ctst
|
||||
TESTCASES += check_mmap2.ctst
|
||||
TESTCASES += check_mmap3.ctst
|
||||
TESTCASES += check_sigalrm.ctst
|
||||
TESTCASES += check_time2.ctst
|
||||
TESTCASES += check_settls1.ctst
|
||||
|
||||
TESTCASES += check_gcctorture_pr28634-1.ctst
|
||||
#TESTCASES += check_gcctorture_pr28634.ctst
|
||||
|
||||
all: build
|
||||
|
||||
%.o: $(SRC_PATH)/tests/tcg/cris/%.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.o: $(SRC_PATH)/tests/tcg/cris/%.s
|
||||
$(AS) $(ASFLAGS) -c $< -o $@
|
||||
|
||||
%.tst: %.o
|
||||
$(CC) $(CFLAGS) $(NOSTDFLAGS) $(LDLIBS) $(NOSTDLIBS) $(CRT) $< $(SYS) -o $@
|
||||
|
||||
%.ctst: %.o
|
||||
$(CC) $(CFLAGS) $(LDLIBS) $< -o $@
|
||||
|
||||
|
||||
sysv10.o: sys.c
|
||||
$(CC) $(CFLAGS) -mcpu=v10 -c $< -o $@
|
||||
|
||||
crtv10.o: crt.s
|
||||
$(AS) $(ASFLAGS) -mcpu=v10 -c $< -o $@
|
||||
|
||||
check_addcv17.tst: ASFLAGS += -mcpu=v10
|
||||
check_addcv17.tst: CRT := crtv10.o
|
||||
check_addcv17.tst: SYS := sysv10.o
|
||||
check_addcv17.tst: crtv10.o sysv10.o
|
||||
|
||||
build: $(CRT) $(SYS) $(TESTCASES)
|
||||
|
||||
check: $(CRT) $(SYS) $(TESTCASES)
|
||||
@printf "\nQEMU simulator.\n"
|
||||
for case in $(TESTCASES); do \
|
||||
printf %s "$$case "; \
|
||||
SIMARGS=; \
|
||||
case $$case in *v17*) SIMARGS="-cpu crisv17";; esac; \
|
||||
$(SIM) $$SIMARGS ./$$case; \
|
||||
done
|
||||
check-g: $(CRT) $(SYS) $(TESTCASES)
|
||||
@printf "\nGDB simulator.\n"
|
||||
@for case in $(TESTCASES); do \
|
||||
printf %s "$$case "; \
|
||||
$(SIMG) $$case; \
|
||||
done
|
||||
|
||||
clean:
|
||||
$(RM) -fr $(TESTCASES) *.o
|
6
tests/tcg/cris/Makefile.include
Normal file
6
tests/tcg/cris/Makefile.include
Normal file
@ -0,0 +1,6 @@
|
||||
#
|
||||
# Makefile.include for all CRIS targets
|
||||
#
|
||||
|
||||
DOCKER_IMAGE=fedora-cris-cross
|
||||
DOCKER_CROSS_COMPILER=cris-linux-gnu-gcc
|
58
tests/tcg/cris/Makefile.target
Normal file
58
tests/tcg/cris/Makefile.target
Normal file
@ -0,0 +1,58 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# Cris tests
|
||||
#
|
||||
# Currently we can only build the "bare" tests with the docker
|
||||
# supplied cross-compiler.
|
||||
#
|
||||
|
||||
CRIS_SRC = $(SRC_PATH)/tests/tcg/cris/bare
|
||||
CRIS_ALL = $(wildcard $(CRIS_SRC)/*.s)
|
||||
CRIS_TESTS = $(patsubst $(CRIS_SRC)/%.s, %, $(CRIS_ALL))
|
||||
# Filter out common blobs and broken tests
|
||||
CRIS_BROKEN_TESTS = crt check_jsr
|
||||
# upstream GCC doesn't support v32
|
||||
CRIS_BROKEN_TESTS += check_mcp check_mulv32 check_addiv32 check_movpmv32
|
||||
CRIS_BROKEN_TESTS += check_movprv32 check_clearfv32 check_movemrv32 check_bas
|
||||
CRIS_BROKEN_TESTS += check_lapc check_movei
|
||||
# no sure why
|
||||
CRIS_BROKEN_TESTS += check_scc check_xarith
|
||||
|
||||
CRIS_USABLE_TESTS = $(filter-out $(CRIS_BROKEN_TESTS), $(CRIS_TESTS))
|
||||
CRIS_RUNS = $(patsubst %, run-%, $(CRIS_USABLE_TESTS))
|
||||
|
||||
# override the list of tests, as we can't build the multiarch tests
|
||||
TESTS = $(CRIS_USABLE_TESTS)
|
||||
VPATH = $(CRIS_SRC)
|
||||
|
||||
AS = $(CC) -x assembler-with-cpp
|
||||
LD = $(CC)
|
||||
|
||||
# we rely on GCC inline:ing the stuff we tell it to in many places here.
|
||||
CFLAGS = -Winline -Wall -g -O2 -static
|
||||
NOSTDFLAGS = -nostartfiles -nostdlib
|
||||
ASFLAGS += -mcpu=v10 -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/bare
|
||||
CRT_FILES = crt.o sys.o
|
||||
|
||||
# stop make deleting crt files if build fails
|
||||
.PRECIOUS: $(CRT_FILES)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $< -o $@
|
||||
|
||||
%.o: %.s
|
||||
$(AS) $(ASFLAGS) -c $< -o $@
|
||||
|
||||
%: %.s $(CRT_FILES)
|
||||
$(CC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT_FILES)
|
||||
|
||||
# The default CPU breaks (possibly as it's max?) so force crisv17
|
||||
$(CRIS_RUNS): QEMU_OPTS=-cpu crisv17
|
||||
|
||||
# Additional runners to run under GNU SIM
|
||||
CRIS_RUNS_ON_SIM=$(patsubst %, %-on-sim, $(CRIS_RUNS))
|
||||
SIMG:=cris-axis-linux-gnu-run
|
||||
|
||||
# e.g.: make -f ../../tests/tcg/Makefile run-check_orm-on-sim
|
||||
run-%-on-sim:
|
||||
$(call run-test, $<, $(SIMG) $<, "$< on $(TARGET_NAME) with SIM")
|
Loading…
Reference in New Issue
Block a user