Merge branch 'master' of https://github.com/dwelch67/raspberrypi
This commit is contained in:
@@ -1,17 +1,7 @@
|
||||
|
||||
A script for building your own gnu toolchain for ARM.
|
||||
|
||||
Derived directly from the same script at the mpx project at opencores.org
|
||||
|
||||
Keep or change the PREFIX in the script to a path where you want the
|
||||
binary to end up.
|
||||
|
||||
sudo ./build_gcc
|
||||
|
||||
then put whatever you had in your prefix/bin in the path. The default
|
||||
gnuarm would mean /gnuarm/bin goes in the PATH.
|
||||
|
||||
|
||||
clang script I wrote, builds llvm+clang from sources.
|
||||
*** I HAVE REMOVED THESE FILES ***
|
||||
|
||||
I have a separate build_gcc repository at github where I maintain the gcc
|
||||
and clang build scripts I use for my own homebuilt toolchains.
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
svn co http://llvm.org/svn/llvm-project/llvm/branches/release_30/ llvm30
|
||||
cd llvm30
|
||||
cd tools
|
||||
svn co http://llvm.org/svn/llvm-project/cfe/branches/release_30/ clang
|
||||
cd ..
|
||||
./configure --enable-optimized --disable-doxygen --prefix=/llvm30
|
||||
make -j 4
|
||||
make install
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
# Usage
|
||||
# sudo ./build_gcc
|
||||
|
||||
# Setup vars
|
||||
export TARGET=arm-none-eabi
|
||||
export PREFIX=/gnuarm
|
||||
export PATH=$PATH:$PREFIX/bin
|
||||
|
||||
rm -rf build-*
|
||||
rm -rf gcc-*
|
||||
rm -rf binutils-*
|
||||
|
||||
# Get archives
|
||||
wget http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2
|
||||
wget http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2
|
||||
|
||||
# Extract archives
|
||||
bzip2 -dc binutils-2.22.tar.bz2 | tar -xf -
|
||||
bzip2 -dc gcc-4.7.1.tar.bz2 | tar -xf -
|
||||
|
||||
# Build binutils
|
||||
mkdir build-binutils
|
||||
cd build-binutils
|
||||
../binutils-2.22/configure --target=$TARGET --prefix=$PREFIX
|
||||
make all
|
||||
make install
|
||||
|
||||
# Build GCC
|
||||
mkdir ../build-gcc
|
||||
cd ../build-gcc
|
||||
../gcc-4.7.1/configure --target=$TARGET --prefix=$PREFIX --without-headers --with-newlib --with-gnu-as --with-gnu-ld
|
||||
make all-gcc
|
||||
make install-gcc
|
||||
|
||||
# Build libgcc.a
|
||||
make all-target-libgcc CFLAGS_FOR_TARGET="-g -O2"
|
||||
make install-target-libgcc
|
||||
|
||||
@@ -8,7 +8,7 @@ COPS2 = -Wall -O3 -nostdlib -nostartfiles -ffreestanding
|
||||
COPS3 = -Wall -O2 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s
|
||||
COPS4 = -Wall -O2 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s -mtune=arm1176jzf-s
|
||||
COPS5 = -Wall -O3 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s -mtune=arm1176jzf-s
|
||||
COPS = $(COPS5)
|
||||
COPS = $(COPS4)
|
||||
|
||||
gcc : twain.gcc.hex twain.gcc.bin
|
||||
|
||||
@@ -88,7 +88,8 @@ ZBCSDEF = compress.bc deflate.bc trees.bc
|
||||
ZBCS = uncompr.bc inflate.bc crc32.bc adler32.bc inffast.bc inftrees.bc zutil.bc $(ZBCSDEF)
|
||||
|
||||
|
||||
LOPS = -Wall -m32 -emit-llvm -ccc-host-triple $(ARMGNU)
|
||||
#LOPS = -Wall -m32 -emit-llvm -ccc-host-triple $(ARMGNU)
|
||||
LOPS = -Wall -m32 -emit-llvm -target $(ARMGNU)
|
||||
LLCOPS0 = -march=arm -mtriple=$(ARMGNU)
|
||||
LLCOPS1 = -march=arm -mtriple=$(ARMGNU) -mcpu=arm1176jzf-s
|
||||
LLCOPS = $(LLCOPS1)
|
||||
|
||||
62
twain/README
62
twain/README
@@ -153,6 +153,48 @@ COPS3 yes yes yes 0x17F0C8
|
||||
COPS4 yes yes yes 0x17FB53
|
||||
COPS5 yes yes yes 0x15B55E
|
||||
|
||||
|
||||
arm-none-eabi-gcc (GCC) 4.8.1
|
||||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
COPS0 no no no 0xD48A9F
|
||||
COPS1 no no no 0xB994DC
|
||||
COPS2 no no no memset
|
||||
COPS3 no no no 0xC4CEBC
|
||||
COPS4 no no no 0xC4D880
|
||||
COPS5 no no no memset
|
||||
|
||||
COPS0 yes no no 0x9D6225
|
||||
COPS1 yes no no 0x90D014
|
||||
COPS2 yes no no memset
|
||||
COPS3 yes no no 0x921680
|
||||
COPS4 yes no no 0x920FF1
|
||||
COPS5 yes no no memset
|
||||
|
||||
COPS3 yes yes no 0x194A48
|
||||
COPS4 yes yes no 0x19379E
|
||||
COPS5 yes yes no memset
|
||||
|
||||
COPS3 yes yes yes 0x1948C2
|
||||
COPS4 yes yes yes 0x19409E
|
||||
COPS5 yes yes yes memset
|
||||
|
||||
memset means:
|
||||
|
||||
twain.o: In function `xmemset':
|
||||
twain.c:(.text+0x1dc): undefined reference to `memset'
|
||||
twain.o: In function `xcalloc':
|
||||
twain.c:(.text+0x23c): undefined reference to `memset'
|
||||
trees.o: In function `build_tree':
|
||||
trees.c:(.text+0x1028): undefined reference to `memset'
|
||||
make: *** [twain.gcc.elf] Error 1
|
||||
|
||||
dont want to deal with that right now.
|
||||
|
||||
|
||||
|
||||
Some things to talk about at this point...First off I was using jtag
|
||||
to load and run these programs. Think about this for a second when
|
||||
you have the instruction cache on and the data cache off. If you stop
|
||||
@@ -318,6 +360,26 @@ LLCOPS1 yes no no 0xAB97C6
|
||||
LLCOPS0 yes yes no 0x1A49FE
|
||||
LLCOPS1 yes yes no 0x19F911
|
||||
|
||||
|
||||
clang version 3.3 (branches/release_33 189603)
|
||||
Target: x86_64-unknown-linux-gnu
|
||||
Thread model: posix
|
||||
|
||||
|
||||
LLCOPS0 no no no 0xE6EF36
|
||||
LLCOPS1 no no no 0xF550AC
|
||||
|
||||
LLCOPS0 yes no no 0xAC25D7
|
||||
LLCOPS1 yes no no 0xAC2B1C
|
||||
|
||||
LLCOPS0 yes yes no 0x1CA6C5
|
||||
LLCOPS1 yes yes no 0x1C4F53
|
||||
|
||||
LLCOPS0 yes yes yes 0x1CA16C
|
||||
LLCOPS1 yes yes yes 0x1C5B56
|
||||
|
||||
|
||||
|
||||
A simple experiment to show the mmu overhead. Changing the code from this
|
||||
|
||||
if(add_one(0x00000000,0x0000|8|4)) return(1);
|
||||
|
||||
Reference in New Issue
Block a user