diff -ur gcc-4.4.2-orig/gcc/config/arm/t-arm-elf gcc-4.4.2/gcc/config/arm/t-arm-elf
--- gcc-4.4.2-orig/gcc/config/arm/t-arm-elf	2008-06-12 13:29:47.000000000 -0400
+++ gcc-4.4.2/gcc/config/arm/t-arm-elf	2009-11-05 20:14:57.000000000 -0500
@@ -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 +50,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 -ur gcc-4.4.2-orig/libgcc/Makefile.in gcc-4.4.2/libgcc/Makefile.in
--- gcc-4.4.2-orig/libgcc/Makefile.in	2009-04-09 19:23:07.000000000 -0400
+++ gcc-4.4.2/libgcc/Makefile.in	2009-11-05 03:59:37.000000000 -0500
@@ -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))))
 
