@@ -100,25 +100,38 @@ else
100100endif
101101endif
102102
103+ ifeq (@default_target@,linux)
104+ TARGET_ALIAS = $(call make_tuple,linux-gnu)
105+ TARGET_TRIPLET = $(call make_tupple,unknown-linux-gnu)
106+ else
107+ ifeq (@target_alias@,arc)
108+ TARGET_ALIAS = $(call make_tuple,elf32)
109+ TARGET_TRIPLET = $(call make_tuple,unknown-elf32)
110+ else
111+ TARGET_ALIAS = $(call make_tuple,elf)
112+ TARGET_TRIPLET = $(call make_tuple,unknown-elf)
113+ endif
114+ endif
115+
103116ifeq ($(SIM ) ,qemu)
104117 # Using qemu simulator.
105118 SIM_STAMP:= stamps/build-qemu
119+ SIM_PATH:=$(srcdir)/scripts/wrapper/$(SIM)
120+ SIM_PREPARE:=PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" ARC_SYSROOT="$(SYSROOT)" DEJAGNU="$(srcdir)/dejagnu/site.exp" DEJAGNU_SIM_OPTIONS="-Wq,-semihosting" QEMU_CPU="$(QEMU_CPU)"
106121else
107122ifeq ($(SIM ) ,nsim)
108123 # Using nsim simulator.
109124 ifeq (@default_target@, linux)
110125 $(error nSIM not supported)
111126 endif
112127 SIM_STAMP:= nsim-validation
128+ SIM_PATH:=$(srcdir)/scripts/wrapper/$(SIM)
129+ SIM_PREPARE:=PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" ARC_SYSROOT="$(SYSROOT)" DEJAGNU="$(srcdir)/dejagnu/site.exp" QEMU_CPU="$(QEMU_CPU)"
113130else
114131 $(error Only support SIM=nsim, or SIM=qemu (default))
115132endif
116133endif
117134
118- SIM_PATH: =$(srcdir ) /scripts/wrapper/$(SIM )
119- SIM_PREPARE:=PATH ="$(SIM_PATH ) :$(INSTALL_DIR ) /bin:$(PATH ) " ARC_SYSROOT="$(SYSROOT ) " DEJAGNU="$(srcdir ) /dejagnu/site.exp" QEMU_CPU="$(QEMU_CPU ) "
120-
121-
122135all : @default_target@ @qemu_build@
123136 echo " $( INSTALL_DIR) " > stamps/install_dir
124137baremetal : stamps/build-gcc-newlib-stage2
@@ -147,6 +160,9 @@ check-binutils: check-binutils-@default_target@
147160check-binutils-linux : stamps/check-binutils-linux
148161check-binutils-baremetal : stamps/check-binutils-baremetal
149162
163+ check-qemu : check-qemu-@default_target@
164+ check-qemu-baremetal : stamps/check-qemu-baremetal
165+
150166check-newlib-baremetal :stamps/check-newlib-baremetal
151167
152168.PHONY : report
@@ -156,6 +172,7 @@ report-linux: $(patsubst %,report-%-linux,$(REGRESSION_TEST_LIST))
156172report-baremetal : $(patsubst % ,report-% -baremetal,$(REGRESSION_TEST_LIST ) )
157173
158174.PHONY : report-newlib-@default_target@ report-binutils-@default_target@
175+ report-qemu : report-qemu-@default_target@
159176report-gcc : report-gcc-@default_target@
160177report-binutils : report-binutils-@default_target@
161178report-newlib : report-newlib-@default_target@
@@ -527,6 +544,22 @@ stamps/build-qemu: $(QEMU_SRCDIR)
527544 $(MAKE ) -C $(notdir $@ ) install
528545 mkdir -p $(dir $@ ) && touch $@
529546
547+ stamps/build-test-qemu : $(srcdir ) /test-qemu
548+ rm -rf $@ $(notdir $@ )
549+ mkdir $(notdir $@ )
550+ cd $(notdir $@ ) && $< /configure \
551+ --with-alias=$(TARGET_ALIAS ) \
552+ --with-triplet=$(TARGET_TRIPLET )
553+ mkdir -p $(dir $@ ) && touch $@
554+
555+ stamps/check-qemu-baremetal : stamps/build-gcc-newlib-stage2 $(SIM_STAMP ) stamps/build-test-qemu
556+ ifneq ($(SIM ) ,qemu)
557+ $(error QEMU simulator must be used)
558+ endif
559+ $(SIM_PREPARE) DEJAGNU_SIM_OPTIONS="-Wq,-serial -Wq,stdio" $(MAKE) -C build-test-qemu check "RUNTESTFLAGS=$(RUNTESTFLAGS) --target_board='$(NEWLIB_TARGET_BOARDS)'" || true
560+ mkdir -p $(dir $@)
561+ date > $@
562+
530563stamps/check-gcc-linux : stamps/build-gcc-linux-stage2 $(SIM_STAMP )
531564 $(SIM_PREPARE ) $(MAKE ) -C build-gcc-linux-stage2 check-gcc " RUNTESTFLAGS=$( RUNTESTFLAGS) --target_board='$( GLIBC_TARGET_BOARDS) '"
532565 mkdir -p $(dir $@ )
@@ -554,6 +587,11 @@ ifeq ($(shell command -v nsimdrv),)
554587 $(error nsimdrv not detected)
555588endif
556589
590+ report-qemu-baremetal : stamps/check-qemu-baremetal
591+ $(srcdir ) /scripts/testsuite-filter newlib \
592+ $(srcdir ) /test/allowlist/qemu/$(QEMU_CPU ) /qemu.json \
593+ ` find build-test-qemu -name * .sum | paste -sd " ," -`
594+
557595report-gcc-baremetal : stamps/check-gcc-baremetal
558596 $(srcdir ) /scripts/testsuite-filter newlib \
559597 $(srcdir ) /test/allowlist/gcc/$(QEMU_CPU ) /gcc.json \
0 commit comments