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
diff -Nur gcc-4.4.1-orig/gcc/config/arm/t-arm-elf gcc-4.4.1/gcc/config/arm/t-arm-elf
--- gcc-4.4.1-orig/gcc/config/arm/t-arm-elf	2008-06-12 13:29:47.000000000 -0400
+++ gcc-4.4.1/gcc/config/arm/t-arm-elf	2009-10-29 23:42:03.000000000 -0400
@@ -28,6 +28,11 @@
 #MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r4
 #MULTILIB_MATCHES      += march?armv7=mcpu?cortex-m3

+# We build a lib for each specific CPU Rockbox targets.  If anyone knows a better
+# way to do this, please let us know.
+MULTILIB_OPTIONS    += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm9e/mcpu=arm926ej-s/mcpu=arm1136jf-s
+MULTILIB_DIRNAMES   += arm7tdmi arm9tdmi arm9e arm926ej-s arm1136jf-s
+
 # MULTILIB_OPTIONS    += mcpu=ep9312
 # MULTILIB_DIRNAMES   += ep9312
 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
@@ -40,8 +45,8 @@
 # MULTILIB_DIRNAMES   += fpu soft
 # MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
 # 
-# MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
-# MULTILIB_DIRNAMES   += normal interwork
+MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
+MULTILIB_DIRNAMES   += normal interwork
 # 
 # MULTILIB_OPTIONS    += fno-leading-underscore/fleading-underscore
 # MULTILIB_DIRNAMES   += elf under
diff -Nur gcc-4.4.1-orig/libgcc/Makefile.in gcc-4.4.1/libgcc/Makefile.in
--- gcc-4.4.1-orig/libgcc/Makefile.in	2009-04-09 19:23:07.000000000 -0400
+++ gcc-4.4.1/libgcc/Makefile.in	2009-10-29 23:52:35.000000000 -0400
@@ -393,14 +393,14 @@
 lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
 $(lib2-divmod-o): %$(objext): $(gcc_srcdir)/libgcc2.c
 	$(gcc_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
-	  -fexceptions -fnon-call-exceptions $(vis_hide)
+	  -fno-exceptions -fno-non-call-exceptions $(vis_hide)
 libgcc-objects += $(lib2-divmod-o)

 ifeq ($(enable_shared),yes)
 lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS))
 $(lib2-divmod-s-o): %_s$(objext): $(gcc_srcdir)/libgcc2.c
 	$(gcc_s_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
-	  -fexceptions -fnon-call-exceptions
+	  -fno-exceptions -fno-non-call-exceptions
 libgcc-s-objects += $(lib2-divmod-s-o)
 endif

@@ -688,7 +688,7 @@
 # libgcc_eh.a, only LIB2ADDEH matters.  If we do, only LIB2ADDEHSTATIC and
 # LIB2ADDEHSHARED matter.  (Usually all three are identical.)

-c_flags := -fexceptions
+c_flags := -fno-exceptions

 ifeq ($(enable_shared),yes)

@@ -710,7 +710,7 @@

 # Build LIBUNWIND.

-c_flags := -fexceptions
+c_flags := -fno-exceptions

 libunwind-objects += $(addsuffix $(objext),$(basename $(notdir $(LIBUNWIND))))