diff --git a/gcc/config.gcc b/gcc/config.gcc
index b9023243acd76c73a7dc0a9b3856c8f8a70e292c..0eacb5d8bf8cd77fc92a4722c811478fd41c1be5 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -658,13 +658,14 @@ arm*-*-eabi* | arm*-*-symbianelf* )
 	# TImode.
 	need_64bit_hwint=yes
 	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
+	tmake_file="t-slibgcc-elf-ver arm/t-arm arm/t-arm-elf arm/t-bpabi"
 	case ${target} in
 	arm*-*-symbianelf*)
 	  tm_file="${tm_file} arm/symbian.h"
+	  tmake_file="${tmake_file} arm/t-symbian"
 	  ;;
 	esac
 	tm_file="${tm_file} arm/aout.h arm/arm.h"
-	tmake_file="t-slibgcc-elf-ver arm/t-arm arm/t-arm-elf arm/t-bpabi"
 	;;
 arm*-*-rtems*)
 	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h"
diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h
index 815ac306ec565d5a543447175e8b2e0dd0b1a6da..4831dfb61bc5203d312efdc05c0152e37b04ffa7 100644
--- a/gcc/config/arm/bpabi.h
+++ b/gcc/config/arm/bpabi.h
@@ -36,13 +36,17 @@
 /* The BPABI integer comparision routines return { -1, 0, 1 }.  */
 #define TARGET_LIB_INT_CMP_BIASED !TARGET_BPABI
 
+/* Tell the assembler to build BPABI binaries.  */
+#undef SUBTARGET_EXTRA_ASM_SPEC
+#define SUBTARGET_EXTRA_ASM_SPEC "-meabi=3"
+
 /* The generic link spec in elf.h does not support shared libraries.  */
 #undef LINK_SPEC
 #define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} "		\
   "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} "	\
   "-X"
 
-#if defined (__thumb__) && !defined (__THUMB_INTERWORD) 
+#if defined (__thumb__) && !defined (__THUMB_INTERWORK) 
 #define RENAME_LIBRARY_SET ".thumb_set"
 #else
 #define RENAME_LIBRARY_SET ".set"
diff --git a/gcc/config/arm/symbian.h b/gcc/config/arm/symbian.h
index bd647d39f0ce62d9b0734fed91b2368350757ea2..d048652fe01bf48bc978d07e41e58ec729fc65f5 100644
--- a/gcc/config/arm/symbian.h
+++ b/gcc/config/arm/symbian.h
@@ -52,3 +52,16 @@
 
 /* Support the "dllimport" attribute.  */
 #define TARGET_DLLIMPORT_DECL_ATTRIBUTES 1
+
+/* Symbian OS assumes ARM V5 or above.  Since -march=armv5 is
+   equivalent to making the ARM 10TDMI core the default, we can set
+   SUBTARGET_CPU_DEFAULT and get an equivalent effect.  */
+#undef SUBTARGET_CPU_DEFAULT
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+
+/* The assembler should assume the VFP FPU format when the hard-float
+   ABI is in use.  */
+#undef SUBTARGET_ASM_FLOAT_SPEC
+#define SUBTARGET_ASM_FLOAT_SPEC \
+  "%{!mfpu=*:%{mfloat-abi=hard:-mfpu=vfp}}"
+