diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fce364221944bcd01d654edbc8ced12c0a0fa6a7..6f73286654a9aeb8cf0854cbc26c3d60d7f88ab4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
+
+	* config/arm/t-symbian: Rewrite for new option infrastructure.
+
 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
 
 	* config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian
index bc10b5856d8d5bad7caad7f30134aae74be66d1c..003651ebfe142739624a7d84fc9bf05c27861ed3 100644
--- a/gcc/config/arm/t-symbian
+++ b/gcc/config/arm/t-symbian
@@ -22,5 +22,35 @@ EXTRA_HEADERS += $(srcdir)/ginclude/unwind-arm-common.h
 # multilib for those without -- using the soft-float ABI in both
 # cases.  Symbian OS object should be compiled with interworking
 # enabled, so there are no separate thumb-mode libraries.
-MULTILIB_OPTIONS     = mfloat-abi=softfp
-MULTILIB_DIRNAMES    = softfp
+
+# Reset all the multilib variables.
+MULTILIB_OPTIONS	=
+MULTILIB_DIRNAMES	=
+MULTILIB_EXCEPTIONS	=
+MULTILIB_REUSE		=
+MULTILIB_MATCHES	=
+MULTILIB_REQUIRED	=
+
+MULTILIB_OPTIONS	+= march=armv5te+fp
+MULTILIB_DIRNAMES	+= v5te
+
+MULTILIB_OPTIONS	+= mfloat-abi=softfp
+MULTILIB_DIRNAMES	+= softfp
+
+MULTLILIB_REQUIRED	+= march=armv5te+fp/mfloat-abi=softfp
+
+MULTILIB_MATCHES	+= $(foreach ARCH, $(all_early_arch), \
+			     march?armv5te+fp=march?$(ARCH)+fp)
+
+MULTILIB_MATCHES	+= $(foreach FPARCH, $(v7a_fps), \
+		             march?armv5te+fp=march?armv7-a+$(FPARCH))
+
+MULTILIB_MATCHES	+= $(foreach FPARCH, $(v7ve_fps), \
+		             march?armv5te+fp=march?armv7ve+$(FPARCH))
+
+MULTILIB_MATCHES	+= $(foreach ARCH, $(all_v7_a_r), \
+			     march?armv5te+fp=march?$(ARCH)+fp)
+
+MULTILIB_MATCHES	+= $(foreach ARCH, $(all_v8_archs), \
+			     $(foreach FPARCH, $(v8_fps), \
+			       march?armv5te+fp=march?$(ARCH)+$(FPARCH)))