1
- ENABLE_PREBUILT ?= 1
2
-
3
1
CC ?= gcc
4
2
CROSS_COMPILE ?= riscv-none-elf-
5
3
@@ -54,34 +52,20 @@ define fetch-releases-tag
54
52
endef
55
53
56
54
LATEST_RELEASE ?=
57
-
58
- ifeq ($(call has, PREBUILT) , 1)
59
- # On macOS/arm64 Github runner, let's leverage the ${{ secrets.GITHUB_TOKEN }} to prevent 403 rate limit error.
60
- # Thus, the LATEST_RELEASE tag is defined at Github job steps, no need to fetch them here.
61
- ifeq ($(LATEST_RELEASE),)
62
- ifeq ($(call has, SYSTEM), 1)
63
- $(call fetch-releases-tag,Linux-Image,rv32emu-linux-image-prebuilt.tar.gz,Linux image)
64
- else ifeq ($(call has, ARCH_TEST), 1)
65
- $(call fetch-releases-tag,sail,rv32emu-prebuilt-sail-$(HOST_PLATFORM),Sail model)
66
- else
67
- $(call fetch-releases-tag,ELF,rv32emu-prebuilt.tar.gz,Prebuilt benchmark)
68
- endif
55
+ ifeq ($(LATEST_RELEASE ) ,)
56
+ ifeq ($(call has, SYSTEM), 1)
57
+ $(call fetch-releases-tag,Linux-Image,rv32emu-linux-image-prebuilt.tar.gz,Linux image)
58
+ else ifeq ($(call has, ARCH_TEST), 1)
59
+ $(call fetch-releases-tag,sail,rv32emu-prebuilt-sail-$(HOST_PLATFORM),Sail model)
60
+ else
61
+ $(call fetch-releases-tag,ELF,rv32emu-prebuilt.tar.gz,Prebuilt benchmark)
69
62
endif
70
- PREBUILT_BLOB_URL = https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )
71
- else
72
- # Since rv32emu only supports the dynamic binary translation of integer instruction in tiered compilation currently,
73
- # we disable the hardware floating-point and the related SIMD operation of x86.
74
- CFLAGS := -m32 -mno-sse -mno-sse2 -msoft-float -O2 -Wno-unused-result -L$(BIN_DIR )
75
- LDFLAGS := -lsoft-fp -lm
76
-
77
- CFLAGS_CROSS := -march=rv32im -mabi=ilp32 -O2 -Wno-implicit-function-declaration
78
- LDFLAGS_CROSS := -lm -lsemihost
79
63
endif
64
+ PREBUILT_BLOB_URL = https://github.com/sysprog21/rv32emu-prebuilt/releases/download/$(LATEST_RELEASE )
80
65
81
- .PHONY : artifact fetch-checksum scimark2 ieeelib
66
+ .PHONY : artifact fetch-checksum
82
67
83
- artifact : fetch-checksum ieeelib scimark2
84
- ifeq ($(call has, PREBUILT) , 1)
68
+ artifact : fetch-checksum
85
69
$(Q )$(PRINTF ) " Checking SHA-1 of prebuilt binaries ... "
86
70
$(Q )$(eval RES := 0)
87
71
@@ -133,46 +117,8 @@ else
133
117
$(call notice, [OK]); \
134
118
fi
135
119
endif
136
- else
137
- ifeq ($(call has, SYSTEM) , 1)
138
- $(Q)(cd $(BIN_DIR) && $(SHA1SUM) linux-image/Image >> sha1sum-linux-image)
139
- $(Q)(cd $(BIN_DIR) && $(SHA1SUM) linux-image/rootfs.cpio >> sha1sum-linux-image)
140
- else
141
- git submodule update --init $(addprefix ./tests/,$(foreach tb,$(TEST_SUITES),$(tb)))
142
- $(Q)for tb in $(TEST_SUITES); do \
143
- CC=$(CC) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" BINDIR=$(BIN_DIR)/linux-x86-softfp $(MAKE) -C ./tests/$$tb; \
144
- done
145
- $(Q)for tb in $(TEST_SUITES); do \
146
- CC=$(CROSS_COMPILE)gcc CFLAGS="$(CFLAGS_CROSS)" LDFLAGS="$(LDFLAGS_CROSS)" BINDIR=$(BIN_DIR)/riscv32 $(MAKE) -C ./tests/$$tb; \
147
- done
148
-
149
- $(Q)$(PRINTF) "Building standalone testbenches ...\n"
150
- $(Q)for tb in $(TEST_BENCHES); do \
151
- $(CC) $(CFLAGS) -o $(BIN_DIR)/linux-x86-softfp/$$tb ./tests/$$tb.c $(LDFLAGS); \
152
- done
153
- $(Q)for tb in $(TEST_BENCHES); do \
154
- $(CROSS_COMPILE)gcc $(CFLAGS_CROSS) -o $(BIN_DIR)/riscv32/$$tb ./tests/$$tb.c $(LDFLAGS_CROSS); \
155
- done
156
-
157
- git submodule update --init ./tests/doom ./tests/quake
158
- $(Q)$(PRINTF) "Building doom ...\n"
159
- $(Q)$(MAKE) -C ./tests/doom/src/riscv CROSS=$(CROSS_COMPILE)
160
- $(Q)cp ./tests/doom/src/riscv/doom-riscv.elf $(BIN_DIR)/riscv32/doom
161
- $(Q)$(PRINTF) "Building quake ...\n"
162
- $(Q)cd ./tests/quake && mkdir -p build && cd build && \
163
- cmake -DCMAKE_TOOLCHAIN_FILE=../port/boards/rv32emu/toolchain.cmake \
164
- -DCROSS_COMPILE=$(CROSS_COMPILE) \
165
- -DCMAKE_BUILD_TYPE=RELEASE -DBOARD_NAME=rv32emu .. && \
166
- make
167
- $(Q)cp ./tests/quake/build/port/boards/rv32emu/quake $(BIN_DIR)/riscv32/quake
168
-
169
- $(Q)(cd $(BIN_DIR)/linux-x86-softfp; for fd in *; do $(SHA1SUM) "$$fd"; done) >> $(BIN_DIR)/sha1sum-linux-x86-softfp
170
- $(Q)(cd $(BIN_DIR)/riscv32; for fd in *; do $(SHA1SUM) "$$fd"; done) >> $(BIN_DIR)/sha1sum-riscv32
171
- endif
172
- endif
173
120
174
121
fetch-checksum :
175
- ifeq ($(call has, PREBUILT) , 1)
176
122
$(Q )$(PRINTF ) " Fetching SHA-1 of prebuilt binaries ... "
177
123
ifeq ($(call has, SYSTEM) , 1)
178
124
ifeq ($(wildcard $(BIN_DIR)/rv32emu-linux-image-prebuilt.tar.gz),)
@@ -197,27 +143,3 @@ else
197
143
$(Q)$(call warn , skipped)
198
144
endif
199
145
endif
200
- endif
201
-
202
- scimark2 :
203
- ifeq ($(call has, PREBUILT) , 0)
204
- ifeq ($(call has, SYSTEM) , 0)
205
- $(Q)$(call prologue,"scimark2")
206
- $(Q)$(call download,$(SCIMARK2_URL))
207
- $(Q)$(call verify,$(SHA1SUM),$(SCIMARK2_SHA1),$(notdir $(SCIMARK2_URL)))
208
- $(Q)$(call extract,"./tests/scimark2",$(notdir $(SCIMARK2_URL)))
209
- $(Q)$(call epilogue,$(notdir $(SCIMARK2_URL)),$(SHA1_FILE1),$(SHA1_FILE2))
210
- $(Q)$(PRINTF) "Building scimark2 ...\n"
211
- $(Q)$(MAKE) -C ./tests/scimark2 CC=$(CC) CFLAGS="-m32 -O2"
212
- $(Q)cp ./tests/scimark2/scimark2 $(BIN_DIR)/linux-x86-softfp/scimark2
213
- $(Q)$(MAKE) -C ./tests/scimark2 clean && $(RM) ./tests/scimark2/scimark2.o
214
- $(Q)$(MAKE) -C ./tests/scimark2 CC=$(CROSS_COMPILE)gcc CFLAGS="-march=rv32imf -mabi=ilp32 -O2"
215
- $(Q)cp ./tests/scimark2/scimark2 $(BIN_DIR)/riscv32/scimark2
216
- endif
217
- endif
218
-
219
- ieeelib :
220
- ifeq ($(call has, PREBUILT) , 0)
221
- git submodule update --init ./src/ieeelib
222
- $(Q)$(MAKE) -C ./src/ieeelib CC=$(CC) CFLAGS="$(CFLAGS)" BINDIR=$(BIN_DIR)
223
- endif
0 commit comments