mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-01-18 18:56:31 +00:00
Add upstream patch fixing XScale build
Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
parent
0ce942862e
commit
b24431f477
52
packages/gcc/8.1.0/0018-xscale.patch
vendored
Normal file
52
packages/gcc/8.1.0/0018-xscale.patch
vendored
Normal file
@ -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:
|
Loading…
Reference in New Issue
Block a user