diff --git a/firmware/target/arm/sandisk/app.lds b/firmware/target/arm/sandisk/app.lds
index 3010644..2c7db6e 100644
--- a/firmware/target/arm/sandisk/app.lds
+++ b/firmware/target/arm/sandisk/app.lds
@@ -93,6 +93,8 @@ SECTIONS
/DISCARD/ :
{
*(.eh_frame)
+ *(.ARM.exidx)
+ *(.ARM.extab)
}

.vectors 0x0 :
diff --git a/tools/configure b/tools/configure
index 3e54f81..aa0bae7 100755
--- a/tools/configure
+++ b/tools/configure
@@ -241,14 +241,11 @@ coldfirecc () {
}

arm7tdmicc () {
- prefixtools arm-elf-
+ prefixtools arm-elf-eabi-
GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
- if test "X$1" != "Xshort"; then
- GCCOPTS="$GCCOPTS -mlong-calls"
- fi
GCCOPTIMIZE="-fomit-frame-pointer"
endian="little"
- gccchoice="4.0.3"
+ gccchoice="4.4.1"
}

arm9tdmicc () {
diff --git a/tools/rockboxdev.sh b/tools/rockboxdev.sh
index 3257d52..ed07167 100755
--- a/tools/rockboxdev.sh
+++ b/tools/rockboxdev.sh
@@ -182,8 +182,11 @@ case $arch in
esac
;;
[Aa])
- target="arm-elf"
- gccpatch="rockbox-multilibs-arm-elf-gcc-4.0.3_3.diff"
+ target="arm-elf-eabi"
+ gccpatch="rockbox-multilibs-arm-elf-gcc-4.4.1_1.diff"
+ gccconfigure="--disable-libssp --disable-libmudflap --disable-libunwind-exceptions"
+ binutils="2.20.51"
+ gccver="4.4.1"
;;
[Ii])
target="mipsel-elf"
@@ -226,7 +229,12 @@ echo ""
if test -f "$dlwhere/binutils-$binutils.tar.bz2"; then
echo "binutils $binutils already downloaded"
else
- getfile binutils-$binutils.tar.bz2 $GNU_MIRROR/binutils
+ #check for snapshot release
+ if [ "${binutils##*.*.}" -gt 49 ] ; then
+ getfile binutils-$binutils.tar.bz2 'ftp://sourceware.org/pub/binutils/snapshots'
+ else
+ getfile binutils-$binutils.tar.bz2 $GNU_MIRROR/binutils
+ fi
fi

if test -f "$dlwhere/gcc-core-$gccver.tar.bz2"; then