aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2017-06-16 21:06:14 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2017-06-16 21:06:14 +0000
commitbe5c4e06871958f2cbd7f091b6b123fb5ee94151 (patch)
tree518a3bf84169c51c523bdf46c1f22b6eea84a76c
parente61a3cdd259de13884da900ecb5440a9cc466665 (diff)
downloadgcc-be5c4e06871958f2cbd7f091b6b123fb5ee94151.zip
gcc-be5c4e06871958f2cbd7f091b6b123fb5ee94151.tar.gz
gcc-be5c4e06871958f2cbd7f091b6b123fb5ee94151.tar.bz2
[arm] Rework multilib support
It looks like the fuchsia port relied on inheriting the multilib rules from the bare-metal port (the t-arm-elf makefile fragment), but that has now been rewritten on the assuption that the base architecture is ARMv4t; fuchsia has a base architecture of ARMv7-a. To account for this, I've cloned the original t-arm-elf rules into a new makefile fragment t-fuchsia and arranged for that to be used when targetting this system. * config/arm/t-fuchsia: New file. * config.gcc (arm*-*-fuchsia*): Use it. From-SVN: r249305
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config.gcc2
-rw-r--r--gcc/config/arm/t-fuchsia33
3 files changed, 39 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f73286..3424581 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2017-06-16 Richard Earnshaw <rearnsha@arm.com>
+ * config/arm/t-fuchsia: New file.
+ * config.gcc (arm*-*-fuchsia*): Use it.
+
+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>
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 94a281d..0518cb7 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1160,7 +1160,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
;;
arm*-*-fuchsia*)
tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
- tmake_file="${tmake_file} arm/t-bpabi"
+ tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
target_cpu_cname="generic-armv7-a"
;;
arm*-*-rtems*)
diff --git a/gcc/config/arm/t-fuchsia b/gcc/config/arm/t-fuchsia
new file mode 100644
index 0000000..18fc518
--- /dev/null
+++ b/gcc/config/arm/t-fuchsia
@@ -0,0 +1,33 @@
+# Copyright (C) 2017 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# Reset all the multilib variables.
+MULTILIB_OPTIONS =
+MULTILIB_DIRNAMES =
+MULTILIB_EXCEPTIONS =
+MULTILIB_REUSE =
+MULTILIB_MATCHES =
+MULTILIB_REQUIRED =
+
+# For compatibility with gcc-7 we build the following multilibs
+MULTILIB_OPTIONS += marm/mthumb
+MULTILIB_DIRNAMES += arm thumb
+
+MULTILIB_OPTIONS += mfloat-abi=hard
+MULTILIB_DIRNAMES += fpu
+MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*