[26/30,arm] Rework multlib builds for symbianelf

Message ID cbd69781a07cf0002d85e59d6ccdcc0efa75ad79.1497004220.git.Richard.Earnshaw@arm.com
State New
Headers show
Series
  • Reworking the -mcpu, -march and -mfpu options
Related show

Commit Message

Richard Earnshaw (lists) June 9, 2017, 12:53 p.m.
Symbianelf used to build multilib for armv5t with softfp, but that
architecture doesn't really support floating point instructions.  This
patch reworks the multilib configuration to use armv5te as the base
when building for floating point.

I'm not sure just how useful the symbian port is these days, so this
has only been very lightly tested (checks that libgcc builds for all
multilib variants).  Perhaps we should consider deprecating this
config?

* config/arm/t-symbian: Rewrite for new option infrastructure.
---
 gcc/config/arm/t-symbian | 34 ++++++++++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian
index bc10b58..003651e 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)))