Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # based on: https://blogs.coreboot.org/blog/2009/03/04/building-an-arm-cross-toolchain-with-binutils-gcc-newlib-and-gdb-from-source/
- # and https://wiki.osdev.org/GCC_Cross-Compiler#GCC
- # after Debian Lenny/Squeeze/Wheezy(at least <Jessie) install
- # su root
- # root
- # apt-get install build-essential bzip2 flex
- # exit
- TARGET=arm-elf # Or: TARGET=arm-none-eabi
- PREFIX=$HOME/$TARGET-toolchain # Install location of your final toolchain
- #PREFIX=/usr/dennis/$TARGET-toolchain # Install location of your final toolchain
- PARALLEL="-j 4" # Or: PARALLEL=""
- BINUTILS=binutils-2.15
- GCC=gcc-3.4.0
- NEWLIB=newlib-1.12.0
- export PATH="$PATH:$PREFIX/bin"
- #-----------
- wget -c http://192.168.56.1:8000/$BINUTILS.tar.bz2
- wget -c http://192.168.56.1:8000/$GCC.tar.gz
- wget -c http://192.168.56.1:8000/$NEWLIB.tar.gz
- #-----------
- if true; then
- # TODO extract directly from downloads
- cp ./downloads/$BINUTILS.tar.bz2 .
- cp ./downloads/$GCC.tar.gz .
- cp ./downloads/$NEWLIB.tar.gz .
- #-----------
- tar xfvj $BINUTILS.tar.bz2
- tar xfvz $GCC.tar.gz
- tar xfvz $NEWLIB.tar.gz
- fi
- rm ./_build -rf
- mkdir ./_build
- mkdir ./_build/binutils
- mkdir ./_build/gcc_stage1
- mkdir ./_build/gcc_stage2
- mkdir ./_build/newlib
- if true; then
- cd ./_build/binutils
- ../../$BINUTILS/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib \
- --with-gnu-as --with-gnu-ld --disable-nls
- make $PARALLEL
- make install
- cd ../..
- cd ./_build/gcc_stage1
- ../../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib \
- --enable-languages="c" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld
- make $PARALLEL all-gcc
- make $PARALLEL install-gcc
- cd ../..
- fi
- cd ./_build/newlib
- ../../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib \
- --with-gnu-as --with-gnu-ld --disable-nls
- make $PARALLEL
- make install
- cd ../..
- # Yes, you need to build gcc again!
- cd ./_build/gcc_stage2
- ../../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib \
- --enable-languages="c,c++" --with-newlib --disable-shared --with-gnu-as --with-gnu-ld \
- --disable-libstdcxx-pch
- # --disable-libstdcxx-pch prevents a bug with PCHs (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26596) when building with net+os-6.3/cygwin340/gcc 3.3.1
- make $PARALLEL
- make install
- cd ../..
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement