Index: arch/ppc32/Makefile.inc
===================================================================
--- arch/ppc32/Makefile.inc	(revision 1b5013579e061f82453afdbbfe88ef4c82c71fab)
+++ arch/ppc32/Makefile.inc	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
@@ -22,5 +22,5 @@
 	arch/debug/panic.s \
 	arch/fpu_context.c \
-	arch/ppc.c \
+	arch/ppc32.c \
 	arch/dummy.s \
 	arch/start.S \
Index: ch/ppc32/src/ppc.c
===================================================================
--- arch/ppc32/src/ppc.c	(revision 1b5013579e061f82453afdbbfe88ef4c82c71fab)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Martin Decky
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <arch.h>
-
-void arch_pre_mm_init(void)
-{
-}
-
-void arch_post_mm_init(void)
-{
-}
-
-void arch_late_init(void)
-{
-}
-
-void calibrate_delay_loop(void)
-{
-}
Index: arch/ppc32/src/ppc32.c
===================================================================
--- arch/ppc32/src/ppc32.c	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
+++ arch/ppc32/src/ppc32.c	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <arch.h>
+
+void arch_pre_mm_init(void)
+{
+}
+
+void arch_post_mm_init(void)
+{
+}
+
+void arch_late_init(void)
+{
+}
+
+void calibrate_delay_loop(void)
+{
+}
Index: ntrib/toolchain/toolchain.mipseb.sh
===================================================================
--- contrib/toolchain/toolchain.mipseb.sh	(revision 1b5013579e061f82453afdbbfe88ef4c82c71fab)
+++ 	(revision )
@@ -1,84 +1,0 @@
-#!/bin/bash
-
-# Cross-Compiler Toolchain for ${PLATFORM}
-#  by Martin Decky <martin@decky.cz>
-#
-#  GPL'ed, copyleft
-#
-
-
-check_error() {
-    if [ "$1" -ne "0" ]; then
-	echo
-	echo "Script failed: $2"
-	exit
-    fi
-}
-
-BINUTILS_VERSION="2.16"
-GCC_VERSION="4.0.1"
-
-BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
-GCC="gcc-core-${GCC_VERSION}.tar.bz2"
-
-BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
-GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
-
-PLATFORM="mips"
-WORKDIR=`pwd`
-TARGET="${PLATFORM}-sgi-irix5"
-HOST="i686-pc-linux-gnu"
-PREFIX="/usr/local/${PLATFORM}"
-BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
-GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
-OBJDIR="${WORKDIR}/gcc-obj"
-
-echo ">>> Downloading tarballs"
-
-if [ ! -f "${BINUTILS}" ]; then
-    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
-    check_error $? "Error downloading binutils."
-fi
-if [ ! -f "${GCC}" ]; then
-    wget -c "${GCC_SOURCE}${GCC}"
-    check_error $? "Error downloading GCC."
-fi
-
-echo ">>> Creating destionation directory"
-if [ ! -d "${PREFIX}" ]; then
-    mkdir -p "${PREFIX}" 
-    test -d "${PREFIX}"
-    check_error $? "Unable to create ${PREFIX}."
-fi
-
-echo ">>> Creating GCC work directory"
-if [ ! -d "${OBJDIR}" ]; then
-    mkdir -p "${OBJDIR}"
-    test -d "${OBJDIR}"
-    check_error $? "Unable to create ${OBJDIR}."
-fi
-
-echo ">>> Unpacking tarballs"
-tar -xvzf "${BINUTILS}"
-check_error $? "Error unpacking binutils."
-tar -xvjf "${GCC}"
-check_error $? "Error unpacking GCC."
-
-echo ">>> Compiling and installing binutils"
-cd "${BINUTILSDIR}"
-check_error $? "Change directory failed."
-./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
-check_error $? "Error configuring binutils."
-make all install
-check_error $? "Error compiling/installing binutils."
-
-echo ">>> Compiling and installing GCC"
-cd "${OBJDIR}"
-check_error $? "Change directory failed."
-"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
-check_error $? "Error configuring GCC."
-PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
-check_error $? "Error compiling/installing GCC."
-
-echo
-echo ">>> Cross-compiler for ${TARGET} installed."
Index: contrib/toolchain/toolchain.mipseb32.sh
===================================================================
--- contrib/toolchain/toolchain.mipseb32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
+++ contrib/toolchain/toolchain.mipseb32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+# Cross-Compiler Toolchain for ${PLATFORM}
+#  by Martin Decky <martin@decky.cz>
+#
+#  GPL'ed, copyleft
+#
+
+
+check_error() {
+    if [ "$1" -ne "0" ]; then
+	echo
+	echo "Script failed: $2"
+	exit
+    fi
+}
+
+BINUTILS_VERSION="2.16"
+GCC_VERSION="4.0.1"
+
+BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
+GCC="gcc-core-${GCC_VERSION}.tar.bz2"
+
+BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
+GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
+
+PLATFORM="mips"
+WORKDIR=`pwd`
+TARGET="${PLATFORM}-sgi-irix5"
+HOST="i686-pc-linux-gnu"
+PREFIX="/usr/local/${PLATFORM}"
+BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
+GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
+OBJDIR="${WORKDIR}/gcc-obj"
+
+echo ">>> Downloading tarballs"
+
+if [ ! -f "${BINUTILS}" ]; then
+    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
+    check_error $? "Error downloading binutils."
+fi
+if [ ! -f "${GCC}" ]; then
+    wget -c "${GCC_SOURCE}${GCC}"
+    check_error $? "Error downloading GCC."
+fi
+
+echo ">>> Creating destionation directory"
+if [ ! -d "${PREFIX}" ]; then
+    mkdir -p "${PREFIX}" 
+    test -d "${PREFIX}"
+    check_error $? "Unable to create ${PREFIX}."
+fi
+
+echo ">>> Creating GCC work directory"
+if [ ! -d "${OBJDIR}" ]; then
+    mkdir -p "${OBJDIR}"
+    test -d "${OBJDIR}"
+    check_error $? "Unable to create ${OBJDIR}."
+fi
+
+echo ">>> Unpacking tarballs"
+tar -xvzf "${BINUTILS}"
+check_error $? "Error unpacking binutils."
+tar -xvjf "${GCC}"
+check_error $? "Error unpacking GCC."
+
+echo ">>> Compiling and installing binutils"
+cd "${BINUTILSDIR}"
+check_error $? "Change directory failed."
+./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
+check_error $? "Error configuring binutils."
+make all install
+check_error $? "Error compiling/installing binutils."
+
+echo ">>> Compiling and installing GCC"
+cd "${OBJDIR}"
+check_error $? "Change directory failed."
+"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
+check_error $? "Error configuring GCC."
+PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
+check_error $? "Error compiling/installing GCC."
+
+echo
+echo ">>> Cross-compiler for ${TARGET} installed."
Index: ntrib/toolchain/toolchain.mipsel.sh
===================================================================
--- contrib/toolchain/toolchain.mipsel.sh	(revision 1b5013579e061f82453afdbbfe88ef4c82c71fab)
+++ 	(revision )
@@ -1,84 +1,0 @@
-#!/bin/bash
-
-# Cross-Compiler Toolchain for ${PLATFORM}
-#  by Martin Decky <martin@decky.cz>
-#
-#  GPL'ed, copyleft
-#
-
-
-check_error() {
-    if [ "$1" -ne "0" ]; then
-	echo
-	echo "Script failed: $2"
-	exit
-    fi
-}
-
-BINUTILS_VERSION="2.16"
-GCC_VERSION="4.0.1"
-
-BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
-GCC="gcc-core-${GCC_VERSION}.tar.bz2"
-
-BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
-GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
-
-PLATFORM="mipsel"
-WORKDIR=`pwd`
-TARGET="${PLATFORM}-linux-gnu"
-HOST="i686-pc-linux-gnu"
-PREFIX="/usr/local/${PLATFORM}"
-BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
-GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
-OBJDIR="${WORKDIR}/gcc-obj"
-
-echo ">>> Downloading tarballs"
-
-if [ ! -f "${BINUTILS}" ]; then
-    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
-    check_error $? "Error downloading binutils."
-fi
-if [ ! -f "${GCC}" ]; then
-    wget -c "${GCC_SOURCE}${GCC}"
-    check_error $? "Error downloading GCC."
-fi
-
-echo ">>> Creating destionation directory"
-if [ ! -d "${PREFIX}" ]; then
-    mkdir -p "${PREFIX}" 
-    test -d "${PREFIX}"
-    check_error $? "Unable to create ${PREFIX}."
-fi
-
-echo ">>> Creating GCC work directory"
-if [ ! -d "${OBJDIR}" ]; then
-    mkdir -p "${OBJDIR}"
-    test -d "${OBJDIR}"
-    check_error $? "Unable to create ${OBJDIR}."
-fi
-
-echo ">>> Unpacking tarballs"
-tar -xvzf "${BINUTILS}"
-check_error $? "Error unpacking binutils."
-tar -xvjf "${GCC}"
-check_error $? "Error unpacking GCC."
-
-echo ">>> Compiling and installing binutils"
-cd "${BINUTILSDIR}"
-check_error $? "Change directory failed."
-./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
-check_error $? "Error configuring binutils."
-make all install
-check_error $? "Error compiling/installing binutils."
-
-echo ">>> Compiling and installing GCC"
-cd "${OBJDIR}"
-check_error $? "Change directory failed."
-"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
-check_error $? "Error configuring GCC."
-PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
-check_error $? "Error compiling/installing GCC."
-
-echo
-echo ">>> Cross-compiler for ${TARGET} installed."
Index: contrib/toolchain/toolchain.mipsel32.sh
===================================================================
--- contrib/toolchain/toolchain.mipsel32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
+++ contrib/toolchain/toolchain.mipsel32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+# Cross-Compiler Toolchain for ${PLATFORM}
+#  by Martin Decky <martin@decky.cz>
+#
+#  GPL'ed, copyleft
+#
+
+
+check_error() {
+    if [ "$1" -ne "0" ]; then
+	echo
+	echo "Script failed: $2"
+	exit
+    fi
+}
+
+BINUTILS_VERSION="2.16"
+GCC_VERSION="4.0.1"
+
+BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
+GCC="gcc-core-${GCC_VERSION}.tar.bz2"
+
+BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
+GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
+
+PLATFORM="mipsel"
+WORKDIR=`pwd`
+TARGET="${PLATFORM}-linux-gnu"
+HOST="i686-pc-linux-gnu"
+PREFIX="/usr/local/${PLATFORM}"
+BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
+GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
+OBJDIR="${WORKDIR}/gcc-obj"
+
+echo ">>> Downloading tarballs"
+
+if [ ! -f "${BINUTILS}" ]; then
+    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
+    check_error $? "Error downloading binutils."
+fi
+if [ ! -f "${GCC}" ]; then
+    wget -c "${GCC_SOURCE}${GCC}"
+    check_error $? "Error downloading GCC."
+fi
+
+echo ">>> Creating destionation directory"
+if [ ! -d "${PREFIX}" ]; then
+    mkdir -p "${PREFIX}" 
+    test -d "${PREFIX}"
+    check_error $? "Unable to create ${PREFIX}."
+fi
+
+echo ">>> Creating GCC work directory"
+if [ ! -d "${OBJDIR}" ]; then
+    mkdir -p "${OBJDIR}"
+    test -d "${OBJDIR}"
+    check_error $? "Unable to create ${OBJDIR}."
+fi
+
+echo ">>> Unpacking tarballs"
+tar -xvzf "${BINUTILS}"
+check_error $? "Error unpacking binutils."
+tar -xvjf "${GCC}"
+check_error $? "Error unpacking GCC."
+
+echo ">>> Compiling and installing binutils"
+cd "${BINUTILSDIR}"
+check_error $? "Change directory failed."
+./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
+check_error $? "Error configuring binutils."
+make all install
+check_error $? "Error compiling/installing binutils."
+
+echo ">>> Compiling and installing GCC"
+cd "${OBJDIR}"
+check_error $? "Change directory failed."
+"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
+check_error $? "Error configuring GCC."
+PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
+check_error $? "Error compiling/installing GCC."
+
+echo
+echo ">>> Cross-compiler for ${TARGET} installed."
Index: ntrib/toolchain/toolchain.ppc.sh
===================================================================
--- contrib/toolchain/toolchain.ppc.sh	(revision 1b5013579e061f82453afdbbfe88ef4c82c71fab)
+++ 	(revision )
@@ -1,84 +1,0 @@
-#!/bin/bash
-
-# Cross-Compiler Toolchain for ${PLATFORM}
-#  by Martin Decky <martin@decky.cz>
-#
-#  GPL'ed, copyleft
-#
-
-
-check_error() {
-    if [ "$1" -ne "0" ]; then
-	echo
-	echo "Script failed: $2"
-	exit
-    fi
-}
-
-BINUTILS_VERSION="2.16"
-GCC_VERSION="4.0.1"
-
-BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
-GCC="gcc-core-${GCC_VERSION}.tar.bz2"
-
-BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
-GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
-
-PLATFORM="ppc"
-WORKDIR=`pwd`
-TARGET="${PLATFORM}-linux-gnu"
-HOST="i686-pc-linux-gnu"
-PREFIX="/usr/local/${PLATFORM}"
-BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
-GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
-OBJDIR="${WORKDIR}/gcc-obj"
-
-echo ">>> Downloading tarballs"
-
-if [ ! -f "${BINUTILS}" ]; then
-    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
-    check_error $? "Error downloading binutils."
-fi
-if [ ! -f "${GCC}" ]; then
-    wget -c "${GCC_SOURCE}${GCC}"
-    check_error $? "Error downloading GCC."
-fi
-
-echo ">>> Creating destionation directory"
-if [ ! -d "${PREFIX}" ]; then
-    mkdir -p "${PREFIX}" 
-    test -d "${PREFIX}"
-    check_error $? "Unable to create ${PREFIX}."
-fi
-
-echo ">>> Creating GCC work directory"
-if [ ! -d "${OBJDIR}" ]; then
-    mkdir -p "${OBJDIR}"
-    test -d "${OBJDIR}"
-    check_error $? "Unable to create ${OBJDIR}."
-fi
-
-echo ">>> Unpacking tarballs"
-tar -xvzf "${BINUTILS}"
-check_error $? "Error unpacking binutils."
-tar -xvjf "${GCC}"
-check_error $? "Error unpacking GCC."
-
-echo ">>> Compiling and installing binutils"
-cd "${BINUTILSDIR}"
-check_error $? "Change directory failed."
-./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
-check_error $? "Error configuring binutils."
-make all install
-check_error $? "Error compiling/installing binutils."
-
-echo ">>> Compiling and installing GCC"
-cd "${OBJDIR}"
-check_error $? "Change directory failed."
-"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
-check_error $? "Error configuring GCC."
-PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
-check_error $? "Error compiling/installing GCC."
-
-echo
-echo ">>> Cross-compiler for ${TARGET} installed."
Index: contrib/toolchain/toolchain.ppc32.sh
===================================================================
--- contrib/toolchain/toolchain.ppc32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
+++ contrib/toolchain/toolchain.ppc32.sh	(revision 72dde3a47984e1ac5538312d346056b8deb75750)
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+# Cross-Compiler Toolchain for ${PLATFORM}
+#  by Martin Decky <martin@decky.cz>
+#
+#  GPL'ed, copyleft
+#
+
+
+check_error() {
+    if [ "$1" -ne "0" ]; then
+	echo
+	echo "Script failed: $2"
+	exit
+    fi
+}
+
+BINUTILS_VERSION="2.16"
+GCC_VERSION="4.0.1"
+
+BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
+GCC="gcc-core-${GCC_VERSION}.tar.bz2"
+
+BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
+GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
+
+PLATFORM="ppc"
+WORKDIR=`pwd`
+TARGET="${PLATFORM}-linux-gnu"
+HOST="i686-pc-linux-gnu"
+PREFIX="/usr/local/${PLATFORM}"
+BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
+GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
+OBJDIR="${WORKDIR}/gcc-obj"
+
+echo ">>> Downloading tarballs"
+
+if [ ! -f "${BINUTILS}" ]; then
+    wget -c "${BINUTILS_SOURCE}${BINUTILS}"
+    check_error $? "Error downloading binutils."
+fi
+if [ ! -f "${GCC}" ]; then
+    wget -c "${GCC_SOURCE}${GCC}"
+    check_error $? "Error downloading GCC."
+fi
+
+echo ">>> Creating destionation directory"
+if [ ! -d "${PREFIX}" ]; then
+    mkdir -p "${PREFIX}" 
+    test -d "${PREFIX}"
+    check_error $? "Unable to create ${PREFIX}."
+fi
+
+echo ">>> Creating GCC work directory"
+if [ ! -d "${OBJDIR}" ]; then
+    mkdir -p "${OBJDIR}"
+    test -d "${OBJDIR}"
+    check_error $? "Unable to create ${OBJDIR}."
+fi
+
+echo ">>> Unpacking tarballs"
+tar -xvzf "${BINUTILS}"
+check_error $? "Error unpacking binutils."
+tar -xvjf "${GCC}"
+check_error $? "Error unpacking GCC."
+
+echo ">>> Compiling and installing binutils"
+cd "${BINUTILSDIR}"
+check_error $? "Change directory failed."
+./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
+check_error $? "Error configuring binutils."
+make all install
+check_error $? "Error compiling/installing binutils."
+
+echo ">>> Compiling and installing GCC"
+cd "${OBJDIR}"
+check_error $? "Change directory failed."
+"${GCCDIR}/configure" "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c --disable-multilib --disable-libgcj --without-headers --disable-shared
+check_error $? "Error configuring GCC."
+PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
+check_error $? "Error compiling/installing GCC."
+
+echo
+echo ">>> Cross-compiler for ${TARGET} installed."
