|
|
|
@ -49,9 +49,11 @@ ASFLAGS_FOR_TARGET := $(ASFLAGS_FOR_TARGET_EXTRA) |
|
|
|
GLIBC_TARGET_FLAGS := $(GLIBC_TARGET_FLAGS_EXTRA) |
|
|
|
GLIBC_CC_FOR_TARGET ?= riscv$(XLEN)-unknown-linux-gnu-gcc |
|
|
|
GLIBC_CXX_FOR_TARGET ?= riscv$(XLEN)-unknown-linux-gnu-g++ |
|
|
|
NEWLIB_CC_FOR_TARGET ?= riscv$(XLEN)-unknown-elf-gcc |
|
|
|
NEWLIB_CXX_FOR_TARGET ?= riscv$(XLEN)-unknown-elf-g++ |
|
|
|
|
|
|
|
all: @default_target@ |
|
|
|
newlib: stamps/build-gcc-newlib |
|
|
|
newlib: stamps/build-gcc-newlib-stage2 |
|
|
|
linux: stamps/build-gcc-linux-stage2 |
|
|
|
|
|
|
|
$(addprefix src/original-,$(PACKAGES)): |
|
|
|
@ -204,20 +206,48 @@ stamps/build-binutils-newlib: $(srcdir)/riscv-binutils-gdb |
|
|
|
$(MAKE) -C $(notdir $@) install |
|
|
|
mkdir -p $(dir $@) && touch $@ |
|
|
|
|
|
|
|
src/newlib-gcc: $(srcdir)/riscv-gcc |
|
|
|
rm -rf $@ $@.tmp |
|
|
|
mkdir -p $(dir $@) |
|
|
|
cp -a $< $@.tmp |
|
|
|
cp -a $(srcdir)/riscv-newlib/. $@.tmp |
|
|
|
cp -a $</include/. $@.tmp/include |
|
|
|
mv $@.tmp $@ |
|
|
|
stamps/build-gcc-newlib-stage1: $(srcdir)/riscv-gcc stamps/build-binutils-newlib |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && $</configure \
|
|
|
|
--target=riscv$(XLEN)-unknown-elf \
|
|
|
|
--prefix=$(INSTALL_DIR) \
|
|
|
|
--disable-shared \
|
|
|
|
--disable-threads \
|
|
|
|
--disable-tls \
|
|
|
|
--enable-languages=c,c++ \
|
|
|
|
--with-system-zlib \
|
|
|
|
--with-newlib \
|
|
|
|
--disable-libmudflap \
|
|
|
|
--disable-libssp \
|
|
|
|
--disable-libquadmath \
|
|
|
|
--disable-libgomp \
|
|
|
|
--disable-nls \
|
|
|
|
$(GCC_CHECKING_FLAGS) \
|
|
|
|
$(MULTILIB_FLAGS) \
|
|
|
|
$(WITH_ABI) \
|
|
|
|
$(WITH_ARCH) |
|
|
|
$(MAKE) -C $(notdir $@) all-gcc |
|
|
|
$(MAKE) -C $(notdir $@) install-gcc |
|
|
|
mkdir -p $(dir $@) && touch $@ |
|
|
|
|
|
|
|
# For some reason, newlib builds a "default" library set even when
|
|
|
|
# multilibs are enabled. Purge it after completing a multilib build.
|
|
|
|
stamps/build-gcc-newlib: src/newlib-gcc stamps/build-binutils-newlib |
|
|
|
stamps/build-newlib: $(srcdir)/riscv-newlib stamps/build-gcc-newlib-stage1 |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && $(CURDIR)/$</configure \
|
|
|
|
cd $(notdir $@) && $</configure \
|
|
|
|
--target=riscv$(XLEN)-unknown-elf \
|
|
|
|
--prefix=$(INSTALL_DIR) \
|
|
|
|
--enable-newlib-io-long-double \
|
|
|
|
--enable-newlib-io-long-long \
|
|
|
|
--enable-newlib-io-c99-formats |
|
|
|
$(MAKE) -C $(notdir $@) |
|
|
|
$(MAKE) -C $(notdir $@) install |
|
|
|
mkdir -p $(dir $@) && touch $@ |
|
|
|
|
|
|
|
stamps/build-gcc-newlib-stage2: $(srcdir)/riscv-gcc stamps/build-newlib |
|
|
|
rm -rf $@ $(notdir $@) |
|
|
|
mkdir $(notdir $@) |
|
|
|
cd $(notdir $@) && $</configure \
|
|
|
|
--target=riscv$(XLEN)-unknown-elf \
|
|
|
|
--prefix=$(INSTALL_DIR) \
|
|
|
|
--without-headers \
|
|
|
|
@ -227,6 +257,7 @@ stamps/build-gcc-newlib: src/newlib-gcc stamps/build-binutils-newlib |
|
|
|
--with-system-zlib \
|
|
|
|
--enable-tls \
|
|
|
|
--with-newlib \
|
|
|
|
--with-headers=$(INSTALL_DIR)/include \
|
|
|
|
--disable-libmudflap \
|
|
|
|
--disable-libssp \
|
|
|
|
--disable-libquadmath \
|
|
|
|
@ -236,17 +267,16 @@ stamps/build-gcc-newlib: src/newlib-gcc stamps/build-binutils-newlib |
|
|
|
$(MULTILIB_FLAGS) \
|
|
|
|
$(WITH_ABI) \
|
|
|
|
$(WITH_ARCH) |
|
|
|
$(MAKE) -C $(notdir $@) inhibit-libc=true |
|
|
|
$(MAKE) -C $(notdir $@) |
|
|
|
$(MAKE) -C $(notdir $@) install |
|
|
|
$(if $(findstring enable,$(MULTILIB_FLAGS)),rm -f $(INSTALL_DIR)/riscv$(XLEN)-unknown-elf/lib/*.*,) |
|
|
|
mkdir -p $(dir $@) && touch $@ |
|
|
|
|
|
|
|
.PHONY: check-gcc-newlib |
|
|
|
check-gcc-newlib: stamps/build-gcc-newlib |
|
|
|
check-gcc-newlib: stamps/build-gcc-newlib-stage2 |
|
|
|
export PATH=$(srcdir)/scripts/wrapper/qemu:$(INSTALL_DIR)/bin:$(PATH) && \
|
|
|
|
export DEJAGNULIBS=$(srcdir)/riscv-dejagnu && \
|
|
|
|
export RISC_V_SYSROOT=$(SYSROOT) && \
|
|
|
|
cd build-gcc-newlib && \
|
|
|
|
cd build-gcc-newlib-stage2 && \
|
|
|
|
$(MAKE) check-gcc "RUNTESTFLAGS=--target_board=riscv-sim" |
|
|
|
|
|
|
|
check-gcc-linux: stamps/build-gcc-linux-stage2 |
|
|
|
|