@@ -39,9 +39,12 @@ SHELL_HACK := $(shell mkdir -p $(BIN_DIR)/linux-x86-softfp $(BIN_DIR)/riscv32 $(
3939ifeq ($(call has, PREBUILT) , 1)
4040ifeq ($(call has, SYSTEM) , 1)
4141 LATEST_RELEASE := $(shell wget -q https://api.github.com/repos/sysprog21/rv32emu-prebuilt/releases -O- | grep '"tag_name"' | grep "Linux-Image" | head -n 1 | sed -E 's/.* "tag_name": "([^"]+) ".*/\1/')
42+ else ifeq ($(call has, ARCH_TEST), 1)
43+ LATEST_RELEASE := $(shell wget -q https://api.github.com/repos/sysprog21/rv32emu-prebuilt/releases -O- | grep '"tag_name"' | grep "sail" | head -n 1 | sed -E 's/.* "tag_name": "([^"]+) ".*/\1/')
4244else
4345 LATEST_RELEASE := $(shell wget -q https://api.github.com/repos/sysprog21/rv32emu-prebuilt/releases -O- | grep '"tag_name"' | grep "ELF" | head -n 1 | sed -E 's/.* "tag_name": "([^"]+) ".*/\1/')
4446endif
47+ PREBUILT_BLOB_URL = https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )
4548else
4649 # Since rv32emu only supports the dynamic binary translation of integer instruction in tiered compilation currently,
4750 # we disable the hardware floating-point and the related SIMD operation of x86.
@@ -67,6 +70,14 @@ ifeq ($(call has, SYSTEM), 1)
6770 ))
6871
6972 $(Q)$(eval RV32EMU_PREBUILT_TARBALL := rv32emu-linux-image-prebuilt.tar.gz)
73+ else ifeq ($(call has, ARCH_TEST), 1)
74+ $(Q)$(eval PREBUILT_SAIL_FILENAME := $(shell cat $(BIN_DIR)/rv32emu-prebuilt-sail-$(HOST_PLATFORM).sha | awk '{ print $$2 };'))
75+
76+ $(Q)$(eval $(foreach FILE,$(PREBUILT_SAIL_FILENAME), \
77+ $(call verify,$(shell grep -w $(FILE) $(BIN_DIR)/rv32emu-prebuilt-sail-$(HOST_PLATFORM).sha | awk '{ print $$1 };'),$(BIN_DIR)/$(FILE),RES) \
78+ ))
79+
80+ $(Q)$(eval RV32EMU_PREBUILT_TARBALL := rv32emu-prebuilt-sail-$(HOST_PLATFORM))
7081else
7182 $(Q)$(eval PREBUILT_X86_FILENAME := $(shell cat $(BIN_DIR)/sha1sum-linux-x86-softfp | awk '{ print $$2 };'))
7283 $(Q)$(eval PREBUILT_RV32_FILENAME := $(shell cat $(BIN_DIR)/sha1sum-riscv32 | awk '{ print $$2 };'))
8192 $(Q)$(eval RV32EMU_PREBUILT_TARBALL := rv32emu-prebuilt.tar.gz)
8293endif
8394
95+ ifeq ($(call has, ARCH_TEST) , 1)
8496 $(Q)if [ "$(RES)" = "1" ]; then \
85- $(PRINTF) "\n$(YELLOW)SHA-1 verification fails ! Re-fetching prebuilt binaries from \"rv32emu-prebuilt\" ...\n$(NO_COLOR)"; \
86- wget -q --show-progress https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )/$(RV32EMU_PREBUILT_TARBALL) -O- | tar -C build --strip-components=1 -xz; \
97+ $(PRINTF) "\n$(YELLOW)SHA-1 verification failed ! Re-fetching prebuilt binaries from \"rv32emu-prebuilt\" ...\n$(NO_COLOR)"; \
98+ wget -q --show-progress $(PREBUILT_BLOB_URL )/$(RV32EMU_PREBUILT_TARBALL) -O build/$(RV32EMU_PREBUILT_TARBALL); \
8799 else \
88100 $(call notice, [OK]); \
89101 fi
102+ else
103+ $(Q)if [ "$(RES)" = "1" ]; then \
104+ $(PRINTF) "\n$(YELLOW)SHA-1 verification failed! Re-fetching prebuilt binaries from \"rv32emu-prebuilt\" ...\n$(NO_COLOR)"; \
105+ wget -q --show-progress $(PREBUILT_BLOB_URL)/$(RV32EMU_PREBUILT_TARBALL) -O- | tar -C build --strip-components=1 -xz; \
106+ else \
107+ $(call notice, [OK]); \
108+ fi
109+ endif
90110else
91111ifeq ($(call has, SYSTEM) , 1)
92112 $(Q)(cd $(BIN_DIR) && $(SHA1SUM) linux-image/Image >> sha1sum-linux-image)
@@ -127,13 +147,15 @@ endif
127147
128148fetch-checksum :
129149ifeq ($(call has, PREBUILT) , 1)
130- $(Q)$(PRINTF) "Fetching SHA-1 of prebuilt binaries ... "
150+ $(Q)$(PRINTF) "Fetching SHA-1 of prebuilt binaries ...\n "
131151ifeq ($(call has, SYSTEM) , 1)
132- $(Q)wget -q -O $(BIN_DIR)/sha1sum-linux-image https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )/sha1sum-linux-image
152+ $(Q)wget -q -O $(BIN_DIR)/sha1sum-linux-image $(PREBUILT_BLOB_URL )/sha1sum-linux-image
133153 $(Q)$(call notice, [OK])
154+ else ifeq ($(call has, ARCH_TEST), 1)
155+ $(Q)wget -q -O $(BIN_DIR)/rv32emu-prebuilt-sail-$(HOST_PLATFORM).sha $(PREBUILT_BLOB_URL)/rv32emu-prebuilt-sail-$(HOST_PLATFORM).sha
134156else
135- $(Q)wget -q -O $(BIN_DIR)/sha1sum-linux-x86-softfp https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )/sha1sum-linux-x86-softfp
136- $(Q)wget -q -O $(BIN_DIR)/sha1sum-riscv32 https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )/sha1sum-riscv32
157+ $(Q)wget -q -O $(BIN_DIR)/sha1sum-linux-x86-softfp $(PREBUILT_BLOB_URL )/sha1sum-linux-x86-softfp
158+ $(Q)wget -q -O $(BIN_DIR)/sha1sum-riscv32 $(PREBUILT_BLOB_URL )/sha1sum-riscv32
137159 $(Q)$(call notice, [OK])
138160endif
139161endif
0 commit comments