RESOURCES: * Reference: - http://gcc.gnu.org/ - http://gcc.gnu.org/libstdc++/ (part of gcc) - http://sources.redhat.com/binutils/ - http://www.gnu.org/software/libc/ - http://www.kernel.org/ - http://www.handhelds.org/ * Download: - ftp://mirrors.rcn.net/pub/sourceware/ (almost everything) - ftp://ftp.handhelds.org/pub/linux/arm/toolchain/ (for kernel headers) - http://www.muth.org/Robert/Patches/ (some patches) PREPARATION: mkdir usr mkdir usr/lib mkdir usr/arm-linux unsetenv CC unsetenv CFLAGS SETTING UP KERNEL HEADERS: cd usr/arm-linux/ tar zxf ../../kernel-headers-sa-2.4.19-rmk6-pxa1-hh5.tar.gz ln -s include sys-include ln -s ../lib . cd ../../ BUILDING BINUTILS WITH A LOCAL PATCH FOR GAS: tar jxf binutils-2.14.tar.bz2 cd binutils-2.14 patch -N -p1 <../binutils-2.14.gas-patch #possibly edit libiberty/physmem.c and define __user to "" ./configure --prefix=$cwd/../usr --target=arm-linux --program-prefix=arm- make make install cd .. === BUILING GCC PASS 1: === setenv PATH "$cwd/usr/bin/:$PATH" tar jxf gcc-3.3.tar.bz2 cd gcc-3.3 ./configure --prefix=$cwd/../usr --target=arm-linux --program-prefix=arm- --disable-threads -with-cpu=strongarm110 -enable-languages=c --disable-shared make make install cd .. BUILDING GLIBC: tar jxf glibc-2.3.2.tar.bz2 cd glibc-2.3.2 patch -N -p1 < ../glibc-2.3.2.patch tar jxf ../glibc-linuxthreads-2.3.2.tar.bz2 patch -N -p0 < ../linuxthreads.patch cd .. mkdir glibc-2.3.2-build setenv CC arm-linux-gcc cd glibc-2.3.2-build ../glibc-2.3.2/configure --prefix=$cwd/../usr --with-binutils=../usr/arm-linux-elf/bin/ --enable-add-ons=linuxthreads --host=arm-linux make make install cd .. edit out line with "BUG" in usr/bin/../lib/gcc-lib/arm-linux/3.3/../../../libc.so > /* GNU ld script > Use the shared library, but some functions are only in > the static library, so try that secondarily. */ > *** BUG in libc/scripts/output-format.sed *** elf32-bigarm,elf32-littlearm > GROUP ( /opt/xdvl/arm-linux-glibc/2.3.2/lib/libc.so.6 /opt/xdvl/arm-linux-glibc/2.3.2/lib/libc_nonshared.a ) BUILING GCC PASS 2: cd gcc-3.3 make distclean unsetenv CC ./configure --prefix=$cwd/../usr --target=arm-linux --program-prefix=arm- -with-cpu=strongarm110 -enable-languages=c,c++ make make install cd .. EOF: