aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2017-06-16 21:06:07 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2017-06-16 21:06:07 +0000
commite61a3cdd259de13884da900ecb5440a9cc466665 (patch)
tree8a5b75877fe8f2163e010484450432659ccba2f3 /gcc
parent99d6bcf7ae8980e04dabe8b86df9c70ad04dc5ba (diff)
downloadgcc-e61a3cdd259de13884da900ecb5440a9cc466665.zip
gcc-e61a3cdd259de13884da900ecb5440a9cc466665.tar.gz
gcc-e61a3cdd259de13884da900ecb5440a9cc466665.tar.bz2
[arm] Rework multlib builds for symbianelf
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. From-SVN: r249304
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/t-symbian34
2 files changed, 36 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fce3642..6f73286 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
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.
(MULTILIB_REQUIRED): Likewise.
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)))