|
|
|
@ -12,6 +12,10 @@ GDB_SRCDIR := @with_gdb_src@ |
|
|
|
|
|
|
|
SIM:=qemu |
|
|
|
|
|
|
|
# Default branch for proxy kernel and spike
|
|
|
|
SPIKE_BRANCH:=master |
|
|
|
PK_BRANCH:=master |
|
|
|
|
|
|
|
ifeq ($(srcdir)/riscv-gcc,$(GCC_SRCDIR)) |
|
|
|
# We need a relative source dir for the gcc configure, to make msys2 mingw64
|
|
|
|
# builds work. Mayberelsrcdir is relative if a relative path was used to run
|
|
|
|
@ -154,15 +158,30 @@ report-gdb: report-gdb-@default_target@ |
|
|
|
build-sim: |
|
|
|
ifeq ($(SIM),qemu) |
|
|
|
SIM_PATH:=$(srcdir)/scripts/wrapper/qemu |
|
|
|
SIM_PREPARE:=PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" |
|
|
|
build-sim: stamps/build-qemu |
|
|
|
else |
|
|
|
ifeq ($(SIM),spike) |
|
|
|
# Using spike simulator.
|
|
|
|
SIM_PATH:=$(srcdir)/scripts/wrapper/spike |
|
|
|
SIM_PREPARE:=PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" PK_PATH="$(INSTALL_DIR)/$(NEWLIB_TUPLE)/bin/" |
|
|
|
build-sim: stamps/build-spike |
|
|
|
ifneq (,$(findstring rv32,$(NEWLIB_MULTILIB_NAMES))) |
|
|
|
build-sim: stamps/build-pk32 |
|
|
|
endif |
|
|
|
ifneq (,$(findstring rv64,$(NEWLIB_MULTILIB_NAMES))) |
|
|
|
build-sim: stamps/build-pk64 |
|
|
|
endif |
|
|
|
else |
|
|
|
ifeq ($(SIM),gdb) |
|
|
|
# Using gdb simulator.
|
|
|
|
SIM_PATH:=$(INSTALL_DIR)/bin |
|
|
|
SIM_PREPARE:= |
|
|
|
else |
|
|
|
$(error "Only support SIM=spike, SIM=gdb or SIM=qemu (default).") |
|
|
|
endif |
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
stamps/check-write-permission: |
|
|
|
mkdir -p $(INSTALL_DIR)/.test || \
|
|
|
|
@ -704,6 +723,45 @@ stamps/build-gcc-musl-stage2: $(GCC_SRCDIR) stamps/build-musl-linux \ |
|
|
|
cp -a $(INSTALL_DIR)/$(MUSL_TUPLE)/lib* $(SYSROOT) |
|
|
|
mkdir -p $(dir $@) && touch $@ |
|
|
|
|
|
|
|
spike-src: |
|
|
|
git clone https://github.com/riscv/riscv-isa-sim.git -b $(SPIKE_BRANCH) $@ |
|
|
|
|
|
|
|
pk-src: |
|
|
|
git clone https://github.com/riscv/riscv-pk.git -b $(PK_BRANCH) $@ |
|
|
|
|
|
|
|
stamps/build-spike: spike-src |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && ../$</configure \
|
|
|
|
--prefix=$(INSTALL_DIR) |
|
|
|
$(MAKE) -C $(notdir $@) |
|
|
|
$(MAKE) -C $(notdir $@) install |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/build-pk32: pk-src stamps/build-gcc-newlib-stage2 |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && ../$</configure \
|
|
|
|
--prefix=$(INSTALL_DIR) \
|
|
|
|
--host=$(NEWLIB_TUPLE) \
|
|
|
|
--with-arch=rv32gc |
|
|
|
$(MAKE) -C $(notdir $@) |
|
|
|
cp $(notdir $@)/pk $(INSTALL_DIR)/$(NEWLIB_TUPLE)/bin/pk32 |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/build-pk64: pk-src stamps/build-gcc-newlib-stage2 |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && ../$</configure \
|
|
|
|
--prefix=$(INSTALL_DIR) \
|
|
|
|
--host=$(NEWLIB_TUPLE) \
|
|
|
|
--with-arch=rv64gc |
|
|
|
$(MAKE) -C $(notdir $@) |
|
|
|
cp $(notdir $@)/pk $(INSTALL_DIR)/$(NEWLIB_TUPLE)/bin/pk64 |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/build-qemu: $(srcdir)/qemu |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
@ -729,17 +787,17 @@ stamps/build-dejagnu: $(srcdir)/riscv-dejagnu |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gcc-newlib: stamps/build-gcc-newlib-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gcc-newlib-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gcc-newlib-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gcc-newlib-nano: stamps/build-gcc-newlib-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gcc-newlib-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gcc-newlib-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gcc-linux: stamps/build-gcc-linux-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gcc-linux-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gcc-linux-stage2 check-gcc "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" |
|
|
|
mkdir -p $(dir $@) |
|
|
|
date > $@ |
|
|
|
|
|
|
|
@ -754,7 +812,7 @@ stamps/check-dhrystone-newlib-%: \ |
|
|
|
$(eval $@_ARCH := $(word 4,$(subst -, ,$@))) |
|
|
|
$(eval $@_ABI := $(word 5,$(subst -, ,$@))) |
|
|
|
$(eval $@_XLEN := $(patsubst rv32%,32,$(patsubst rv64%,64,$($@_ARCH)))) |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
$(SIM_PREPARE) $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
|
|
|
|
stamps/check-dhrystone-newlib-nano-%: \ |
|
|
|
stamps/build-gcc-newlib-stage2 \
|
|
|
|
@ -763,7 +821,7 @@ stamps/check-dhrystone-newlib-nano-%: \ |
|
|
|
$(eval $@_ARCH := $(word 5,$(subst -, ,$@))) |
|
|
|
$(eval $@_ABI := $(word 6,$(subst -, ,$@))) |
|
|
|
$(eval $@_XLEN := $(patsubst rv32%,32,$(patsubst rv64%,64,$($@_ARCH)))) |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -specs=nano.specs -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
$(SIM_PREPARE) $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -specs=nano.specs -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
|
|
|
|
.PHONY: check-dhrystone-linux |
|
|
|
check-dhrystone-linux: $(patsubst %,stamps/check-dhrystone-linux-%,$(GLIBC_MULTILIB_NAMES)) |
|
|
|
@ -775,30 +833,30 @@ stamps/check-dhrystone-linux-%: \ |
|
|
|
$(eval $@_ARCH := $(word 4,$(subst -, ,$@))) |
|
|
|
$(eval $@_ABI := $(word 5,$(subst -, ,$@))) |
|
|
|
$(eval $@_XLEN := $(patsubst rv32%,32,$(patsubst rv64%,64,$($@_ARCH)))) |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
$(SIM_PREPARE) $(srcdir)/test/benchmarks/dhrystone/check -march=$($@_ARCH) -mabi=$($@_ABI) -cc=riscv$(XLEN)-unknown-elf-gcc -objdump=riscv$(XLEN)-unknown-elf-objdump -sim=riscv$($@_XLEN)-unknown-elf-run -out=$@ $(filter %.c,$^) || true |
|
|
|
|
|
|
|
stamps/check-binutils-newlib: stamps/build-gcc-newlib-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-binutils-newlib check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-binutils-newlib check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-binutils-newlib-nano: stamps/build-gcc-newlib-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-binutils-newlib check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-binutils-newlib check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-binutils-linux: stamps/build-gcc-linux-stage2 build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-binutils-linux check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-binutils-linux check-binutils check-gas check-ld -k "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gdb-newlib: stamps/build-gcc-newlib-stage2 stamps/build-gdb-newlib build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gdb-newlib check-gdb -k "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gdb-newlib check-gdb -k "RUNTESTFLAGS=--target_board='$(NEWLIB_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gdb-newlib-nano: stamps/build-gcc-newlib-stage2 stamps/build-gdb-newlib build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gdb-newlib check-gdb -k "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gdb-newlib check-gdb -k "RUNTESTFLAGS=--target_board='$(NEWLIB_NANO_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
stamps/check-gdb-linux: stamps/build-gcc-linux-stage2 stamps/build-gdb-linux build-sim stamps/build-dejagnu |
|
|
|
PATH="$(SIM_PATH):$(INSTALL_DIR)/bin:$(PATH)" RISC_V_SYSROOT="$(SYSROOT)" $(MAKE) -C build-gdb-linux check-gdb -k "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" || true |
|
|
|
$(SIM_PREPARE) $(MAKE) -C build-gdb-linux check-gdb -k "RUNTESTFLAGS=--target_board='$(GLIBC_TARGET_BOARDS)'" || true |
|
|
|
date > $@ |
|
|
|
|
|
|
|
.PHONY: report-gcc-newlib report-gcc-newlib-nano |
|
|
|
|