From 554b95aad3189b07d69f0b8fb59fda1932e0ac68 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Wed, 27 Mar 2002 09:25:09 +0000 Subject: Initial revision git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30 a1c6a512-1295-4272-9138-f99709370657 --- www/cross-gcc.t | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 www/cross-gcc.t (limited to 'www/cross-gcc.t') diff --git a/www/cross-gcc.t b/www/cross-gcc.t new file mode 100644 index 0000000000..8e6b72a66c --- /dev/null +++ b/www/cross-gcc.t @@ -0,0 +1,92 @@ +#define _PAGE_ Building the SH1 cross compiler +#include "head.t" + +

+In this example I will assume that you are running Linux with the bash shell. +We will only build the C compiler along with the assembler, linker and stuff. +

Download the source code

+

+You will need the following archives: +

+

Unpack the archives

+

+

+ /home/linus> tar zxf binutils-2.11.tar.gz
+ /home/linus> tar zxf gcc-3.0.3.tar.gz
+ /home/linus> tar zxf newlib-1.10.0.tar.gz
+ /home/linus> tar zxf gdb-5.1.1.tar.gz
+
+

Create the directory tree

+

+

+ /home/linus> mkdir build
+ /home/linus> cd build
+ /home/linus/build> mkdir binutils
+ /home/linus/build> mkdir gcc
+ /home/linus/build> mkdir gdb
+
+

Create the newlib and libgloss links

+

+The GCC configuration script finds the newlib and libgloss files if they are in the GCC tree. Let's create two soft links. +

+ /home/linus> cd gcc-3.0.3
+ /home/linus/gcc-3.0.3> ln -s ../newlib-1.10.0/newlib .
+ /home/linus/gcc-3.0.3> ln -s ../newlib-1.10.0/libgloss .
+
+

Make up your mind

+

+Now is the time to decide where you want the tools to be installed. This is +the directory where all binaries, libraries, man pages and stuff end up when +you do "make install". +

+In this example I have chosen "/home/linus/sh1" as my installation directory, or prefix as it is called. Feel free to use any prefix, like +/usr/local/sh1 for example. +

Build binutils

+

+We will start with building the binutils (the assembler, linker and stuff). +This is pretty straightforward. We will be installing the whole tool chain +in the /home/linus/sh1 directory. +

+ /home/linus> cd build/binutils
+ /home/linus/build/binutils> ../../binutils-2.11/configure --target=sh-elf --prefix=/home/linus/sh1
+ /home/linus/build/binutils> make
+ /home/linus/build/binutils> make install
+
+

Build GCC

+

+Now you are ready to build GCC. To do this, you must have the newly built +binutils in the PATH. +

+ /home/linus> export PATH=/home/linus/sh1/bin:$PATH
+ /home/linus> cd build/gcc
+ /home/linus/gcc> ../../gcc-3.0.3/configure --target=sh-elf --prefix=/home/linus/sh1 --with-newlib --enable-languages=c
+ /home/linus/build/binutils> make
+ /home/linus/build/binutils> make install
+
+

Build GDB

+

+If you are planning to debug your code with GDB, you have to build it as well. +

+ /home/linus> export PATH=/home/linus/sh1/bin:$PATH
+ /home/linus> cd build/gdb
+ /home/linus/gdb> ../../gdb-5.1.1/configure --target=sh-elf --prefix=/home/linus/sh1
+ /home/linus/build/binutils> make
+ /home/linus/build/binutils> make install
+
+

Done

+

+If someone up there likes you, you now have a working tool chain for SH1. +To compile a file with gcc: +

+ /home/linus> sh-elf-gcc -c main.o main.c
+
+Good luck! +

+Linus + +#include "foot.t" -- cgit v1.2.3