Index: tools/toolchain.sh
===================================================================
--- tools/toolchain.sh	(revision 8f6c778597143e8b7a55779be0e07007930e4f3c)
+++ tools/toolchain.sh	(revision 6317b337b630d0ddf383d243c39d6ffdf22d669a)
@@ -53,10 +53,8 @@
 EOF
 
-BINUTILS_VERSION="2.22"
+BINUTILS_VERSION="2.23.1"
 BINUTILS_RELEASE=""
-#GCC_VERSION="4.7.2"
-GCC_VERSION="4.7.3"
-#GCC_VERSION="4.8.0"
-GDB_VERSION="7.5"
+GCC_VERSION="4.8.0"
+GDB_VERSION="7.5.1"
 
 BASEDIR="`pwd`"
@@ -73,7 +71,7 @@
 	HEADER="$2"
 	BODY="$3"
-
+	
 	FNAME="/tmp/conftest-$$"
-
+	
 	echo "#include ${HEADER}" > "${FNAME}.c"
 	echo >> "${FNAME}.c"
@@ -83,8 +81,8 @@
 	echo "	return 0;" >> "${FNAME}.c"
 	echo "}" >> "${FNAME}.c"
-
+	
 	cc -c -o "${FNAME}.o" "${FNAME}.c" 2> "${FNAME}.log"
 	RC="$?"
-
+	
 	if [ "$RC" -ne "0" ] ; then
 		echo " ${DEPENDENCY} not found, too old or compiler error."
@@ -115,5 +113,5 @@
 		echo
 		echo "Script failed: $2"
-
+		
 		exit 1
 	fi
@@ -123,10 +121,10 @@
 	FILE="$1"
 	SUM="$2"
-
+	
 	COMPUTED="`md5sum "${FILE}" | cut -d' ' -f1`"
 	if [ "${SUM}" != "${COMPUTED}" ] ; then
 		echo
 		echo "Checksum of ${FILE} does not match."
-
+		
 		exit 2
 	fi
@@ -158,5 +156,5 @@
 	echo "defined, /usr/local/cross will be used by default."
 	echo
-
+	
 	exit 3
 }
@@ -168,14 +166,14 @@
 show_countdown() {
 	TM="$1"
-
+	
 	if [ "${TM}" -eq 0 ] ; then
 		echo
 		return 0
 	fi
-
+	
 	echo -n "${TM} "
 	change_title "${TM}"
 	sleep 1
-
+	
 	TM="`expr "${TM}" - 1`"
 	show_countdown "${TM}"
@@ -213,5 +211,5 @@
 	FILE="$2"
 	CHECKSUM="$3"
-
+	
 	if [ ! -f "${FILE}" ]; then
 		change_title "Downloading ${FILE}"
@@ -219,5 +217,5 @@
 		check_error $? "Error downloading ${FILE}."
 	fi
-
+	
 	check_md5 "${FILE}" "${CHECKSUM}"
 }
@@ -225,9 +223,9 @@
 source_check() {
 	FILE="$1"
-
+	
 	if [ ! -f "${FILE}" ]; then
 		echo
 		echo "File ${FILE} not found."
-
+		
 		exit 4
 	fi
@@ -236,5 +234,5 @@
 cleanup_dir() {
 	DIR="$1"
-
+	
 	if [ -d "${DIR}" ]; then
 		change_title "Removing ${DIR}"
@@ -247,8 +245,8 @@
 	DIR="$1"
 	DESC="$2"
-
+	
 	change_title "Creating ${DESC}"
 	echo ">>> Creating ${DESC}"
-
+	
 	mkdir -p "${DIR}"
 	test -d "${DIR}"
@@ -259,8 +257,8 @@
 	FILE="$1"
 	DESC="$2"
-
+	
 	change_title "Unpacking ${DESC}"
 	echo " >>> Unpacking ${DESC}"
-
+	
 	tar -xjf "${FILE}"
 	check_error $? "Error unpacking ${DESC}."
@@ -271,12 +269,12 @@
 	check_dependecies
 	show_countdown 10
-
+	
 	BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
 	GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
 	GDB_SOURCE="ftp://ftp.gnu.org/gnu/gdb/"
-
-	download_fetch "${BINUTILS_SOURCE}" "${BINUTILS}" "ee0f10756c84979622b992a4a61ea3f5"
-	download_fetch "${GCC_SOURCE}" "${GCC}" "cc308a0891e778cfda7a151ab8a6e762"
-	download_fetch "${GDB_SOURCE}" "${GDB}" "24a6779a9fe0260667710de1b082ef61"
+	
+	download_fetch "${BINUTILS_SOURCE}" "${BINUTILS}" "33adb18c3048d057ac58d07a3f1adb38"
+	download_fetch "${GCC_SOURCE}" "${GCC}" "e6040024eb9e761c3bea348d1fa5abb0"
+	download_fetch "${GDB_SOURCE}" "${GDB}" "3f48f468b24447cf24820054ff6e85b1"
 }
 
@@ -284,5 +282,5 @@
 	PLATFORM="$1"
 	TARGET="$2"
-
+	
 	WORKDIR="${BASEDIR}/${PLATFORM}"
 	BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
@@ -290,73 +288,73 @@
 	OBJDIR="${WORKDIR}/gcc-obj"
 	GDBDIR="${WORKDIR}/gdb-${GDB_VERSION}"
-
+	
 	if [ -z "${CROSS_PREFIX}" ] ; then
 		CROSS_PREFIX="/usr/local/cross"
 	fi
-
+	
 	PREFIX="${CROSS_PREFIX}/${PLATFORM}"
-
+	
 	echo ">>> Downloading tarballs"
-	#source_check "${BASEDIR}/${BINUTILS}"
+	source_check "${BASEDIR}/${BINUTILS}"
 	source_check "${BASEDIR}/${GCC}"
-	#source_check "${BASEDIR}/${GDB}"
-
+	source_check "${BASEDIR}/${GDB}"
+	
 	echo ">>> Removing previous content"
-	#cleanup_dir "${PREFIX}"
-	#cleanup_dir "${WORKDIR}"
-
+	cleanup_dir "${PREFIX}"
+	cleanup_dir "${WORKDIR}"
+	
 	create_dir "${PREFIX}" "destination directory"
 	create_dir "${OBJDIR}" "GCC object directory"
-
+	
 	echo ">>> Unpacking tarballs"
 	cd "${WORKDIR}"
 	check_error $? "Change directory failed."
-
-	#unpack_tarball "${BASEDIR}/${BINUTILS}" "binutils"
+	
+	unpack_tarball "${BASEDIR}/${BINUTILS}" "binutils"
 	unpack_tarball "${BASEDIR}/${GCC}" "GCC"
-	#unpack_tarball "${BASEDIR}/${GDB}" "GDB"
-
-	#echo ">>> Processing binutils (${PLATFORM})"
-	#cd "${BINUTILSDIR}"
-	#check_error $? "Change directory failed."
-
-	#change_title "binutils: configure (${PLATFORM})"
-	#CFLAGS=-Wno-error ./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --disable-nls --disable-werror
-	#check_error $? "Error configuring binutils."
-
-	#change_title "binutils: make (${PLATFORM})"
-	#make all install
-	#check_error $? "Error compiling/installing binutils."
-
+	unpack_tarball "${BASEDIR}/${GDB}" "GDB"
+	
+	echo ">>> Processing binutils (${PLATFORM})"
+	cd "${BINUTILSDIR}"
+	check_error $? "Change directory failed."
+	
+	change_title "binutils: configure (${PLATFORM})"
+	CFLAGS=-Wno-error ./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --disable-nls --disable-werror
+	check_error $? "Error configuring binutils."
+	
+	change_title "binutils: make (${PLATFORM})"
+	make all install
+	check_error $? "Error compiling/installing binutils."
+	
 	echo ">>> Processing GCC (${PLATFORM})"
 	cd "${OBJDIR}"
 	check_error $? "Change directory failed."
-
+	
 	change_title "GCC: configure (${PLATFORM})"
 	"${GCCDIR}/configure" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c,objc,c++,obj-c++ --disable-multilib --disable-libgcj --without-headers --disable-shared --enable-lto --disable-werror
 	check_error $? "Error configuring GCC."
-
+	
 	change_title "GCC: make (${PLATFORM})"
 	PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
 	check_error $? "Error compiling/installing GCC."
-
-	#echo ">>> Processing GDB (${PLATFORM})"
-	#cd "${GDBDIR}"
-	#check_error $? "Change directory failed."
-
-	#change_title "GDB: configure (${PLATFORM})"
-	#./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-"
-	#check_error $? "Error configuring GDB."
-
-	#change_title "GDB: make (${PLATFORM})"
-	#make all install
-	#check_error $? "Error compiling/installing GDB."
-
+	
+	echo ">>> Processing GDB (${PLATFORM})"
+	cd "${GDBDIR}"
+	check_error $? "Change directory failed."
+	
+	change_title "GDB: configure (${PLATFORM})"
+	./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-"
+	check_error $? "Error configuring GDB."
+	
+	change_title "GDB: make (${PLATFORM})"
+	make all install
+	check_error $? "Error compiling/installing GDB."
+	
 	cd "${BASEDIR}"
 	check_error $? "Change directory failed."
-
+	
 	echo ">>> Cleaning up"
 	cleanup_dir "${WORKDIR}"
-
+	
 	echo
 	echo ">>> Cross-compiler for ${TARGET} installed."
@@ -369,5 +367,5 @@
 case "$1" in
 	"amd64")
-		#prepare
+		prepare
 		build_target "amd64" "amd64-linux-gnu"
 		;;
@@ -377,5 +375,5 @@
 		;;
 	"ia32")
-		#prepare
+		prepare
 		build_target "ia32" "i686-pc-linux-gnu"
 		;;
@@ -440,17 +438,17 @@
 		build_target "arm32" "arm-linux-gnueabi" &
 		wait
-
+		
 		build_target "ia32" "i686-pc-linux-gnu" &
 		build_target "ia64" "ia64-pc-linux-gnu" &
 		wait
-
+		
 		build_target "mips32" "mipsel-linux-gnu" &
 		build_target "mips32eb" "mips-linux-gnu" &
 		wait
-
+		
 		build_target "mips64" "mips64el-linux-gnu" &
 		build_target "ppc32" "ppc-linux-gnu" &
 		wait
-
+		
 		build_target "ppc64" "ppc64-linux-gnu" &
 		build_target "sparc64" "sparc64-linux-gnu" &
