summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2018-06-15 08:08:16 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-18 11:07:57 +0100
commit3c3545ec78f27868551e6add048e0373eebc5a20 (patch)
treefaeb1750c38a25ec96b797a3a54d6651da007515
parent21c0898d8ee28c706f9740fcb52c5b9baa51e2d3 (diff)
downloadpoky-3c3545ec78f27868551e6add048e0373eebc5a20.tar.gz
gcc-8: Fix spurious mcpu/march conflict for xscale
(From OE-Core rev: 00808545041750698f710ef4e0345c80221373b8) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/gcc/gcc-8.1.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-8.1/0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch61
2 files changed, 62 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-8.1.inc b/meta/recipes-devtools/gcc/gcc-8.1.inc
index ad79320023..ebe3c24978 100644
--- a/meta/recipes-devtools/gcc/gcc-8.1.inc
+++ b/meta/recipes-devtools/gcc/gcc-8.1.inc
@@ -73,6 +73,7 @@ SRC_URI = "\
73 ${BACKPORTS} \ 73 ${BACKPORTS} \
74" 74"
75BACKPORTS = "\ 75BACKPORTS = "\
76 file://0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch \
76" 77"
77SRC_URI[md5sum] = "65f7c65818dc540b3437605026d329fc" 78SRC_URI[md5sum] = "65f7c65818dc540b3437605026d329fc"
78SRC_URI[sha256sum] = "1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153" 79SRC_URI[sha256sum] = "1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153"
diff --git a/meta/recipes-devtools/gcc/gcc-8.1/0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch b/meta/recipes-devtools/gcc/gcc-8.1/0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch
new file mode 100644
index 0000000000..68b8962d47
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-8.1/0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch
@@ -0,0 +1,61 @@
1From 11dc6b9576b78bb7a8d70491beab7ab4de24c9d0 Mon Sep 17 00:00:00 2001
2From: rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Mon, 4 Jun 2018 08:46:04 +0000
4Subject: [PATCH] [arm] PR target/86003 build failures with --with-cpu=xscale
5
6The XScale cpu configuration in GCC has always been somewhat
7non-conforming. Although XScale isn't an architecture (it's simply an
8implementation of ARMv5te), we do by tradition emit a specific
9pre-define for it. We achieve this effect by adding an additional
10feature bit to the xscale CPU definition that isn't part of the base
11architecture.
12
13When I restructured the options last year I overlooked this oddity and
14the result, of course, is that this configuration now fails to build
15as intended.
16
17What happens is that the driver (correctly) constructs an architecture
18for the xscale cpu name (as armv5te) and passes it in addition to the
19CPU name. The backend code, on finding both a cpu and an architecture
20specifies attempts to correlate the two and finds a difference due to
21the additional feature bit and reports an inconsistency (fatally if
22-werror is specified).
23
24I think the best fix to this is to treat the xscale feature bit using
25the same mechanism that we use for other 'quirks' in CPU
26implementations and simply filter it out before comparing the
27capabilities. It has the additional benefit that it's also the
28simplest fix.
29
30 PR target/86003
31 * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
32 of bits to ignore when comparing architectures.
33
34
35git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@261141 138bc75d-0d04-0410-961f-82ee72b054a4
36---
37Signed-off-by: Khem Raj <raj.khem@gmail.com>
38Upstream-Status: Backport
39
40 gcc/ChangeLog | 6 ++++++
41 gcc/config/arm/arm-cpus.in | 4 +++-
42 2 files changed, 9 insertions(+), 1 deletion(-)
43
44diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
45index 96972a057e7..545321b0bbe 100644
46--- a/gcc/config/arm/arm-cpus.in
47+++ b/gcc/config/arm/arm-cpus.in
48@@ -268,7 +268,9 @@ define fgroup DOTPROD NEON dotprod
49
50 # List of all quirk bits to strip out when comparing CPU features with
51 # architectures.
52-define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd
53+# xscale isn't really a 'quirk', but it isn't an architecture either and we
54+# need to ignore it for matching purposes.
55+define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale
56
57 # Architecture entries
58 # format:
59--
602.17.1
61