diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/gcc/8.1.0/0018-xscale.patch | 52 | ||||
-rw-r--r-- | packages/mingw-w64/v5.0.3/0001-xgetbv.patch | 32 |
2 files changed, 84 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: diff --git a/packages/mingw-w64/v5.0.3/0001-xgetbv.patch b/packages/mingw-w64/v5.0.3/0001-xgetbv.patch new file mode 100644 index 0000000..2884609 --- /dev/null +++ b/packages/mingw-w64/v5.0.3/0001-xgetbv.patch @@ -0,0 +1,32 @@ +commit 3ce3e27f044935f19e93e80c43ca695262d484e1 +Author: Mateusz <mateuszb@poczta.onet.pl> +Date: Mon Jan 22 20:58:48 2018 +0100 + + intrin-impl.h: do not define _xgetbv for GCC 8 + + GCC 8 from r248028 has defined function _xgetbv and we should + avoid double definition of this function. + + Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl> + Signed-off-by: Martin Storsjö <martin@martin.st> + +diff --git a/mingw-w64-headers/include/psdk_inc/intrin-impl.h b/mingw-w64-headers/include/psdk_inc/intrin-impl.h +index ff9e6aff..88af804c 100644 +--- a/mingw-w64-headers/include/psdk_inc/intrin-impl.h ++++ b/mingw-w64-headers/include/psdk_inc/intrin-impl.h +@@ -1775,6 +1775,7 @@ __buildmov(__movsd, unsigned __LONG32, "d") + #define __INTRINSIC_DEFINED___movsd + #endif /* __INTRINSIC_PROLOG */ + ++#if !defined(__GNUC__) || __GNUC__ < 8 /* GCC 8 has already defined _xgetbv */ + /* NOTE: This should be in immintrin.h */ + #if __INTRINSIC_PROLOG(_xgetbv) + unsigned __int64 _xgetbv(unsigned int); +@@ -1798,6 +1799,7 @@ unsigned __int64 _xgetbv(unsigned int index) + #endif + #define __INTRINSIC_DEFINED__xgetbv + #endif /* __INTRINSIC_PROLOG */ ++#endif /* __GNUC__ < 8 */ + + #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */ + |