1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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