diff options
| author | Khem Raj <raj.khem@gmail.com> | 2018-06-15 08:08:16 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-06-18 11:07:57 +0100 |
| commit | 3c3545ec78f27868551e6add048e0373eebc5a20 (patch) | |
| tree | faeb1750c38a25ec96b797a3a54d6651da007515 /meta/recipes-devtools/gcc | |
| parent | 21c0898d8ee28c706f9740fcb52c5b9baa51e2d3 (diff) | |
| download | poky-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>
Diffstat (limited to 'meta/recipes-devtools/gcc')
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-8.1.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-8.1/0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch | 61 |
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 | " |
| 75 | BACKPORTS = "\ | 75 | BACKPORTS = "\ |
| 76 | file://0041-arm-PR-target-86003-build-failures-with-with-cpu-xsc.patch \ | ||
| 76 | " | 77 | " |
| 77 | SRC_URI[md5sum] = "65f7c65818dc540b3437605026d329fc" | 78 | SRC_URI[md5sum] = "65f7c65818dc540b3437605026d329fc" |
| 78 | SRC_URI[sha256sum] = "1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153" | 79 | SRC_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 @@ | |||
| 1 | From 11dc6b9576b78bb7a8d70491beab7ab4de24c9d0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | ||
| 3 | Date: Mon, 4 Jun 2018 08:46:04 +0000 | ||
| 4 | Subject: [PATCH] [arm] PR target/86003 build failures with --with-cpu=xscale | ||
| 5 | |||
| 6 | The XScale cpu configuration in GCC has always been somewhat | ||
| 7 | non-conforming. Although XScale isn't an architecture (it's simply an | ||
| 8 | implementation of ARMv5te), we do by tradition emit a specific | ||
| 9 | pre-define for it. We achieve this effect by adding an additional | ||
| 10 | feature bit to the xscale CPU definition that isn't part of the base | ||
| 11 | architecture. | ||
| 12 | |||
| 13 | When I restructured the options last year I overlooked this oddity and | ||
| 14 | the result, of course, is that this configuration now fails to build | ||
| 15 | as intended. | ||
| 16 | |||
| 17 | What happens is that the driver (correctly) constructs an architecture | ||
| 18 | for the xscale cpu name (as armv5te) and passes it in addition to the | ||
| 19 | CPU name. The backend code, on finding both a cpu and an architecture | ||
| 20 | specifies attempts to correlate the two and finds a difference due to | ||
| 21 | the additional feature bit and reports an inconsistency (fatally if | ||
| 22 | -werror is specified). | ||
| 23 | |||
| 24 | I think the best fix to this is to treat the xscale feature bit using | ||
| 25 | the same mechanism that we use for other 'quirks' in CPU | ||
| 26 | implementations and simply filter it out before comparing the | ||
| 27 | capabilities. It has the additional benefit that it's also the | ||
| 28 | simplest 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 | |||
| 35 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@261141 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
| 36 | --- | ||
| 37 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 38 | Upstream-Status: Backport | ||
| 39 | |||
| 40 | gcc/ChangeLog | 6 ++++++ | ||
| 41 | gcc/config/arm/arm-cpus.in | 4 +++- | ||
| 42 | 2 files changed, 9 insertions(+), 1 deletion(-) | ||
| 43 | |||
| 44 | diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in | ||
| 45 | index 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 | -- | ||
| 60 | 2.17.1 | ||
| 61 | |||
