Hello Vivek,
I upgraded the binutils version in uspace/app/binutils/Makefile to test
the latest release of binutils:
[...]
So, it appears everything went quite smooth. Though in this case the
assembler is configured for the target i686-pc-linux-gnu, i believe new
binutils will work for other targets and profiles too. But, it surely
needs to be tested.
Thanks for testing this out! I also believe that there should be little
to no problems with the new version of binutils, the changes between
2.21.1 and 2.22 were not fundamental.
One other thing i would like to mention is that, currently
cross-compiler toolchain is binutils-2.22, gcc-{core, objc, g++}-4.6.3,
and gdb-7.4. With the latest release of gcc-4.7.0, the packaging
structure has changed and there are no independent tar files for each of
gcc-{core, objc, g++}, they are all in one package i.e.
gcc-4.7.0.tar.bz2. Sometime in near future, toolchain has to be bumped
to gcc-4.7.0
Yes, I am already working on this. Changing the toolchain.sh script to
use the single GCC package is quite trivial, see the patch attached.
However, there is one fundamental change in GCC 4.7 which requires more
work: The original ARM ABI which we have been using has been removed and
the compiler supports only the new EABI. Both the kernel and the user
space need to reflect this change. I hope I'll have the modifications
finished and ready over the weekend.
M.D.
=== modified file 'tools/toolchain.sh'
--- tools/toolchain.sh 2012-03-14 15:47:31 +0000
+++ tools/toolchain.sh 2012-03-22 23:21:24 +0000
@@ -54,14 +54,12 @@
BINUTILS_VERSION="2.22"
BINUTILS_RELEASE=""
-GCC_VERSION="4.6.3"
+GCC_VERSION="4.7.0"
GDB_VERSION="7.4"
BASEDIR="`pwd`"
BINUTILS="binutils-${BINUTILS_VERSION}${BINUTILS_RELEASE}.tar.bz2"
-GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
-GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
-GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
+GCC="gcc-${GCC_VERSION}.tar.bz2"
GDB="gdb-${GDB_VERSION}.tar.bz2"
#
@@ -274,9 +272,7 @@
GDB_SOURCE="ftp://ftp.gnu.org/gnu/gdb/"
download_fetch "${BINUTILS_SOURCE}" "${BINUTILS}" "ee0f10756c84979622b992a4a61ea3f5"
- download_fetch "${GCC_SOURCE}" "${GCC_CORE}" "766091220c6a14fcaa2c06dd573e3758"
- download_fetch "${GCC_SOURCE}" "${GCC_OBJC}" "48ba23770c34b1cb468f72618b4452c5"
- download_fetch "${GCC_SOURCE}" "${GCC_CPP}" "37515158a0fb3d0800ec41a08c05e69e"
+ download_fetch "${GCC_SOURCE}" "${GCC}" "2a0f1d99fda235c29d40b561f81d9a77"
download_fetch "${GDB_SOURCE}" "${GDB}" "95a9a8305fed4d30a30a6dc28ff9d060"
}
@@ -298,9 +294,7 @@
echo ">>> Downloading tarballs"
source_check "${BASEDIR}/${BINUTILS}"
- source_check "${BASEDIR}/${GCC_CORE}"
- source_check "${BASEDIR}/${GCC_OBJC}"
- source_check "${BASEDIR}/${GCC_CPP}"
+ source_check "${BASEDIR}/${GCC}"
source_check "${BASEDIR}/${GDB}"
echo ">>> Removing previous content"
@@ -315,9 +309,7 @@
check_error $? "Change directory failed."
unpack_tarball "${BASEDIR}/${BINUTILS}" "binutils"
- unpack_tarball "${BASEDIR}/${GCC_CORE}" "GCC Core"
- unpack_tarball "${BASEDIR}/${GCC_OBJC}" "Objective C"
- unpack_tarball "${BASEDIR}/${GCC_CPP}" "C++"
+ unpack_tarball "${BASEDIR}/${GCC}" "GCC"
unpack_tarball "${BASEDIR}/${GDB}" "GDB"
echo ">>> Processing binutils (${PLATFORM})"
@@ -377,7 +369,7 @@
;;
"arm32")
prepare
- build_target "arm32" "arm-linux-gnu"
+ build_target "arm32" "arm-linux-gnueabi"
;;
"ia32")
prepare
@@ -414,7 +406,7 @@
"all")
prepare
build_target "amd64" "amd64-linux-gnu"
- build_target "arm32" "arm-linux-gnu"
+ build_target "arm32" "arm-linux-gnueabi"
build_target "ia32" "i686-pc-linux-gnu"
build_target "ia64" "ia64-pc-linux-gnu"
build_target "mips32" "mipsel-linux-gnu"
@@ -427,7 +419,7 @@
"parallel")
prepare
build_target "amd64" "amd64-linux-gnu" &
- build_target "arm32" "arm-linux-gnu" &
+ build_target "arm32" "arm-linux-gnueabi" &
build_target "ia32" "i686-pc-linux-gnu" &
build_target "ia64" "ia64-pc-linux-gnu" &
build_target "mips32" "mipsel-linux-gnu" &
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel