1*c4293333SXiaojuan Yang# 2*c4293333SXiaojuan Yang# Loongarch64 system tests 3*c4293333SXiaojuan Yang# 4*c4293333SXiaojuan Yang 5*c4293333SXiaojuan YangLOONGARCH64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/loongarch64/system 6*c4293333SXiaojuan YangVPATH+=$(LOONGARCH64_SYSTEM_SRC) 7*c4293333SXiaojuan Yang 8*c4293333SXiaojuan Yang# These objects provide the basic boot code and helper functions for all tests 9*c4293333SXiaojuan YangCRT_OBJS=boot.o 10*c4293333SXiaojuan Yang 11*c4293333SXiaojuan YangLOONGARCH64_TEST_SRCS=$(wildcard $(LOONGARCH64_SYSTEM_SRC)/*.c) 12*c4293333SXiaojuan YangLOONGARCH64_TESTS = $(patsubst $(LOONGARCH64_SYSTEM_SRC)/%.c, %, $(LOONGARCH64_TEST_SRCS)) 13*c4293333SXiaojuan Yang 14*c4293333SXiaojuan YangCRT_PATH=$(LOONGARCH64_SYSTEM_SRC) 15*c4293333SXiaojuan YangLINK_SCRIPT=$(LOONGARCH64_SYSTEM_SRC)/kernel.ld 16*c4293333SXiaojuan YangLDFLAGS=-Wl,-T$(LINK_SCRIPT) 17*c4293333SXiaojuan YangTESTS+=$(LOONGARCH64_TESTS) $(MULTIARCH_TESTS) 18*c4293333SXiaojuan YangCFLAGS+=-nostdlib -g -O1 -march=loongarch64 -mabi=lp64d $(MINILIB_INC) 19*c4293333SXiaojuan YangLDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc 20*c4293333SXiaojuan Yang 21*c4293333SXiaojuan Yang# building head blobs 22*c4293333SXiaojuan Yang.PRECIOUS: $(CRT_OBJS) 23*c4293333SXiaojuan Yang 24*c4293333SXiaojuan Yang%.o: $(CRT_PATH)/%.S 25*c4293333SXiaojuan Yang $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@ 26*c4293333SXiaojuan Yang 27*c4293333SXiaojuan Yang# Build and link the tests 28*c4293333SXiaojuan Yang%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS) 29*c4293333SXiaojuan Yang $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 30*c4293333SXiaojuan Yang 31*c4293333SXiaojuan Yangmemory: CFLAGS+=-DCHECK_UNALIGNED=0 32*c4293333SXiaojuan Yang# Running 33*c4293333SXiaojuan YangQEMU_OPTS+=-serial chardev:output -kernel 34