summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-06-05 07:15:50 (GMT)
committerAlexey Neyman <stilor@att.net>2018-06-05 07:16:53 (GMT)
commitb24431f477474033e9adb7d8e158e0a512ba630d (patch)
tree5b0d2962e724e1c1ef1bc2aa505143fafb8e2a4b /packages
parent0ce942862e80e373a172ffb40f2d29c38cd6bae4 (diff)
Add upstream patch fixing XScale build
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'packages')
-rw-r--r--packages/gcc/8.1.0/0018-xscale.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/packages/gcc/8.1.0/0018-xscale.patch b/packages/gcc/8.1.0/0018-xscale.patch
new file mode 100644
index 0000000..62654c2
--- /dev/null
+++ b/packages/gcc/8.1.0/0018-xscale.patch
@@ -0,0 +1,52 @@
+commit f18d79595db4ae88dbd40d73bb2d1ea191a756a1
+Author: rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Mon Jun 4 08:41:45 2018 +0000
+
+ [arm] PR target/86003 build failures with --with-cpu=xscale
+
+ The XScale cpu configuration in GCC has always been somewhat
+ non-conforming. Although XScale isn't an architecture (it's simply an
+ implementation of ARMv5te), we do by tradition emit a specific
+ pre-define for it. We achieve this effect by adding an additional
+ feature bit to the xscale CPU definition that isn't part of the base
+ architecture.
+
+ When I restructured the options last year I overlooked this oddity and
+ the result, of course, is that this configuration now fails to build
+ as intended.
+
+ What happens is that the driver (correctly) constructs an architecture
+ for the xscale cpu name (as armv5te) and passes it in addition to the
+ CPU name. The backend code, on finding both a cpu and an architecture
+ specifies attempts to correlate the two and finds a difference due to
+ the additional feature bit and reports an inconsistency (fatally if
+ -werror is specified).
+
+ I think the best fix to this is to treat the xscale feature bit using
+ the same mechanism that we use for other 'quirks' in CPU
+ implementations and simply filter it out before comparing the
+ capabilities. It has the additional benefit that it's also the
+ simplest fix.
+
+ PR target/86003
+ * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
+ of bits to ignore when comparing architectures.
+
+
+ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261140 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
+index aec73b5cae0..661bf1a573c 100644
+--- a/gcc/config/arm/arm-cpus.in
++++ b/gcc/config/arm/arm-cpus.in
+@@ -254,7 +254,9 @@ define fgroup DOTPROD NEON dotprod
+
+ # List of all quirk bits to strip out when comparing CPU features with
+ # architectures.
+-define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd
++# xscale isn't really a 'quirk', but it isn't an architecture either and we
++# need to ignore it for matching purposes.
++define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale
+
+ # Architecture entries
+ # format: