From 20003f0adac77cdd695b956740ebefa99b71df65 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sat, 16 Feb 2013 23:41:42 +0100 Subject: [PATCH] software: go back to GCC --- .gitignore | 1 - README | 19 ++++++++--------- software/common.mak | 35 ++++++++++++++++---------------- software/libcompiler-rt/Makefile | 2 +- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index a5ab809ad..378e5117c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ __pycache__ build/* *.o -*.ts *.d *.a *.bin diff --git a/README b/README index 442dbfa58..183d61149 100644 --- a/README +++ b/README @@ -17,17 +17,15 @@ production version of Milkymist SoC, visit: [> Instructions (software) -------------------------- 1. Compile and install binutils. Take the latest version from GNU. - ./configure --target=lm32-elf + mkdir build && cd build + ../configure --target=lm32-elf make make install -2. Compile and install LLVM and Clang. - git clone git://github.com/milkymist/llvm-lm32.git - cd llvm-lm32/tools - git clone git://github.com/milkymist/clang-lm32.git clang - cd .. - mkdir build - cmake .. +2. Compile and install GCC 4.5. Take gcc-core and gcc-g++ from GNU. + rm -rf libstdc++-v3 + mkdir build && cd build + ../configure --target=lm32-elf --enable-languages="c,c++" --disable-libgcc --disable-libssp make make install @@ -42,8 +40,7 @@ production version of Milkymist SoC, visit: make flash The second command requires m1nor, FJMEM and UrJTAG. -These tools can be found respectively at: - http://projects.qi-hardware.com/index.php/p/wernermisc/ +These tools can be found at: https://github.com/milkymist/fjmem-m1 http://urjtag.org @@ -84,7 +81,7 @@ The authors grant the additional permissions that the code can be used in conjunction with the LatticeMico32 CPU core from Lattice. Unless otherwise noted, Milkymist-NG's source code is copyright (C) -2011-2012 Sebastien Bourdeauducq. Other authors retain ownership of their +2011-2013 Sebastien Bourdeauducq. Other authors retain ownership of their contributions. If a submission can reasonably be considered independently copyrightable, it's yours and I encourage you to claim it with appropriate copyright notices. This submission then falls under the diff --git a/software/common.mak b/software/common.mak index 76ea448ab..47bb54eaf 100644 --- a/software/common.mak +++ b/software/common.mak @@ -1,19 +1,18 @@ -TARGET_PREFIX=lm32-elf -CLANG=clang -target lm32 +TARGET_PREFIX=lm32-elf- -CC_normal := $(CLANG) -AS_normal := $(TARGET_PREFIX)-as -AR_normal := $(TARGET_PREFIX)-ar -LD_normal := $(TARGET_PREFIX)-ld -OBJCOPY_normal := $(TARGET_PREFIX)-objcopy -RANLIB_normal := $(TARGET_PREFIX)-ranlib +CC_normal := $(TARGET_PREFIX)gcc +AS_normal := $(TARGET_PREFIX)as +AR_normal := $(TARGET_PREFIX)ar +LD_normal := $(TARGET_PREFIX)ld +OBJCOPY_normal := $(TARGET_PREFIX)objcopy +RANLIB_normal := $(TARGET_PREFIX)ranlib -CC_quiet = @echo " CC " $@ && $(CLANG) -AS_quiet = @echo " AS " $@ && $(TARGET_PREFIX)-as -AR_quiet = @echo " AR " $@ && $(TARGET_PREFIX)-ar -LD_quiet = @echo " LD " $@ && $(TARGET_PREFIX)-ld -OBJCOPY_quiet = @echo " OBJCOPY " $@ && $(TARGET_PREFIX)-objcopy -RANLIB_quiet = @echo " RANLIB " $@ && $(TARGET_PREFIX)-ranlib +CC_quiet = @echo " CC " $@ && $(TARGET_PREFIX)gcc +AS_quiet = @echo " AS " $@ && $(TARGET_PREFIX)as +AR_quiet = @echo " AR " $@ && $(TARGET_PREFIX)ar +LD_quiet = @echo " LD " $@ && $(TARGET_PREFIX)ld +OBJCOPY_quiet = @echo " OBJCOPY " $@ && $(TARGET_PREFIX)objcopy +RANLIB_quiet = @echo " RANLIB " $@ && $(TARGET_PREFIX)ranlib ifeq ($(V),1) CC = $(CC_normal) @@ -34,22 +33,22 @@ endif # Toolchain options # INCLUDES = -I$(M2DIR)/software/include/base -I$(M2DIR)/software/include -I$(M2DIR)/common -CFLAGS = -O3 -Wall -Wstrict-prototypes -Wold-style-definition -Wshadow \ - -Wmissing-prototypes -nostdinc $(INCLUDES) +CFLAGS = -O3 -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled \ + -Wall -Wstrict-prototypes -Wold-style-definition -Wshadow \ + -Wmissing-prototypes -fno-builtin -nostdinc $(INCLUDES) LDFLAGS = -nostdlib -nodefaultlibs # compile and generate dependencies, based on # http://scottmcpeak.com/autodepend/autodepend.html define compile-dep -$(CC) -c $(CFLAGS) $< -o $*.ts -S +$(CC) -c $(CFLAGS) $< -o $*.o @$(CC_normal) -MM $(CFLAGS) $< > $*.d @mv -f $*.d $*.d.tmp @sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $*.d @rm -f $*.d.tmp -@$(AS_normal) -o $*.o $*.ts endef define assemble diff --git a/software/libcompiler-rt/Makefile b/software/libcompiler-rt/Makefile index 15274808d..906149fbd 100644 --- a/software/libcompiler-rt/Makefile +++ b/software/libcompiler-rt/Makefile @@ -4,7 +4,7 @@ include $(M2DIR)/software/common.mak CFLAGS+=-D_YUGA_LITTLE_ENDIAN=0 -D_YUGA_BIG_ENDIAN=1 -Wno-missing-prototypes OBJECTS=divsi3.o modsi3.o comparedf2.o negsf2.o negdf2.o addsf3.o subsf3.o mulsf3.o divsf3.o lshrdi3.o muldi3.o divdi3.o ashldi3.o ashrdi3.o udivmoddi4.o \ - floatsisf.o floatunsisf.o fixsfsi.o fixunssfsi.o adddf3.o subdf3.o muldf3.o divdf3.o floatsidf.o floatunsidf.o floatdidf.o fixdfsi.o fixunsdfsi.o + floatsisf.o floatunsisf.o fixsfsi.o fixunssfsi.o adddf3.o subdf3.o muldf3.o divdf3.o floatsidf.o floatunsidf.o floatdidf.o fixdfsi.o fixunsdfsi.o clzsi2.o all: libcompiler-rt.a