diff options
author | Vyacheslav Razykov | 2021-04-09 00:13:47 +0300 |
---|---|---|
committer | Vyacheslav Razykov | 2021-04-09 00:13:47 +0300 |
commit | 6b7944586d0c3407deeb4a36fe7654e0313a002b (patch) | |
tree | 30b113fdcfa0d23fbaadd6eede020abb65df4bf8 | |
parent | 5bfb0eb46a962e84d122a24bed4fba33ea7826b0 (diff) | |
download | aur-6b7944586d0c3407deeb4a36fe7654e0313a002b.tar.gz |
Update to 10.3.0-1
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | PKGBUILD | 22 | ||||
-rw-r--r-- | all_default-ssp-fix.patch (renamed from fs64270.patch) | 14 | ||||
-rw-r--r-- | ipa-fix-ICE-in-get_default_value.patch | 80 | ||||
-rw-r--r-- | ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch | 147 |
5 files changed, 20 insertions, 261 deletions
@@ -1,7 +1,7 @@ pkgbase = arm-linux-gnueabihf-gcc-stage1 pkgdesc = The GNU Compiler Collection. Stage 1 for toolchain building (arm-linux-gnueabihf) - pkgver = 10.2.0 - pkgrel = 3 + pkgver = 10.3.0 + pkgrel = 1 url = https://gcc.gnu.org arch = i686 arch = x86_64 @@ -15,22 +15,18 @@ pkgbase = arm-linux-gnueabihf-gcc-stage1 options = !emptydirs options = !distcc options = !strip - source = https://sourceware.org/pub/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.xz - source = https://sourceware.org/pub/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.xz.sig + source = https://sourceware.org/pub/gcc/releases/gcc-10.3.0/gcc-10.3.0.tar.xz + source = https://sourceware.org/pub/gcc/releases/gcc-10.3.0/gcc-10.3.0.tar.xz.sig source = http://isl.gforge.inria.fr/isl-0.21.tar.xz - source = fs64270.patch - source = ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch - source = ipa-fix-ICE-in-get_default_value.patch + source = all_default-ssp-fix.patch validpgpkeys = F3691687D867B81B51CE07D9BBE43771487328A9 validpgpkeys = 86CFFCA918CF3AF47147588051E8B148A9999C34 validpgpkeys = 13975A70E63C361C73AE69EF6EEB81F8981C74C7 validpgpkeys = 33C235A34C46AA3FFB293709A328C3A2C3C45C06 - sha256sums = b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c + sha256sums = 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 sha256sums = SKIP sha256sums = 777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960 - sha256sums = 1ef190ed4562c4db8c1196952616cd201cfdd788b65f302ac2cc4dabb4d72cee - sha256sums = fcb11c9bcea320afd202b031b48f8750aeaedaa4b0c5dddcd2c0a16381e927e4 - sha256sums = 42865f2af3f48140580c4ae70b6ea03b5bdca0f29654773ef0d42ce00d60ea16 + sha256sums = 5481035e3a714c6ad7bbf06b342c8b278a474b131d88e3cdc00a6221fe4d12ac pkgname = arm-linux-gnueabihf-gcc-stage1 @@ -7,10 +7,10 @@ _target="arm-linux-gnueabihf" pkgname=${_target}-gcc-stage1 -pkgver=10.2.0 +pkgver=10.3.0 _majorver=${pkgver%%.*} _islver=0.21 -pkgrel=3 +pkgrel=1 pkgdesc="The GNU Compiler Collection. Stage 1 for toolchain building (${_target})" arch=(i686 x86_64) license=(GPL LGPL FDL custom) @@ -19,19 +19,15 @@ depends=("${_target}-binutils>=2.36.1-1" libmpc zlib) options=(!emptydirs !distcc !strip) source=(https://sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.xz{,.sig} http://isl.gforge.inria.fr/isl-${_islver}.tar.xz - fs64270.patch - ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch - ipa-fix-ICE-in-get_default_value.patch) + all_default-ssp-fix.patch) validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com 33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com> -sha256sums=('b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c' +sha256sums=('64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344' 'SKIP' '777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960' - '1ef190ed4562c4db8c1196952616cd201cfdd788b65f302ac2cc4dabb4d72cee' - 'fcb11c9bcea320afd202b031b48f8750aeaedaa4b0c5dddcd2c0a16381e927e4' - '42865f2af3f48140580c4ae70b6ea03b5bdca0f29654773ef0d42ce00d60ea16') + '5481035e3a714c6ad7bbf06b342c8b278a474b131d88e3cdc00a6221fe4d12ac') prepare() { [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc @@ -48,13 +44,7 @@ prepare() { # Turn off SSP for nostdlib|nodefaultlibs|ffreestanding # https://bugs.archlinux.org/task/64270 - patch -p1 -i "$srcdir/fs64270.patch" - - # Fix a crash in mpv when mesa 20.2 is compiled with LTO - # https://gitlab.freedesktop.org/mesa/mesa/-/issues/3239 - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96482 - patch -Np1 -i ../ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch - patch -Np1 -i ../ipa-fix-ICE-in-get_default_value.patch + patch -p1 -i "$srcdir/all_default-ssp-fix.patch" mkdir -p "$srcdir/gcc-build" } diff --git a/fs64270.patch b/all_default-ssp-fix.patch index 7b9e142c6be8..832a6a586ec8 100644 --- a/fs64270.patch +++ b/all_default-ssp-fix.patch @@ -1,9 +1,9 @@ -Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding +Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding ---- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200 -+++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100 -@@ -857,6 +857,12 @@ proper position among the other output f - #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" +--- a/gcc/gcc.c 2021-04-08 22:48:03.395002871 +0300 ++++ b/gcc/gcc.c 2021-04-08 22:52:27.701661788 +0300 +@@ -874,6 +874,12 @@ + #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}" #endif +#ifdef ENABLE_DEFAULT_SSP @@ -15,7 +15,7 @@ Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding #ifndef LINK_SSP_SPEC #ifdef TARGET_LIBC_PROVIDES_SSP #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -@@ -1131,7 +1148,7 @@ static const char *cc1_options = +@@ -1155,7 +1161,7 @@ %{-version:--version}\ %{-help=*:--help=%*}\ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\ @@ -23,4 +23,4 @@ Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\ %{coverage:-fprofile-arcs -ftest-coverage}\ %{fprofile-arcs|fprofile-generate*|coverage:\ - %{!fprofile-update=singel:\ + %{!fprofile-update=single:\ diff --git a/ipa-fix-ICE-in-get_default_value.patch b/ipa-fix-ICE-in-get_default_value.patch deleted file mode 100644 index 572299462ff4..000000000000 --- a/ipa-fix-ICE-in-get_default_value.patch +++ /dev/null @@ -1,80 +0,0 @@ -From f91770216eade83f068528c1e4f00e2ac3b23044 Mon Sep 17 00:00:00 2001 -From: Martin Liska <mliska@suse.cz> -Date: Thu, 13 Aug 2020 09:38:41 +0200 -Subject: [PATCH] ipa: fix ICE in get_default_value - -The patch aligns code with ipcp_bits_lattice::set_to_constant -where we properly mask m_value with m_mask. The same should -be done here. - -gcc/ChangeLog: - - PR ipa/96482 - * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value - with m_mask. - -gcc/testsuite/ChangeLog: - - PR ipa/96482 - * gcc.dg/ipa/pr96482-2.c: New test. ---- - gcc/ipa-cp.c | 2 +- - gcc/testsuite/gcc.dg/ipa/pr96482-2.c | 33 ++++++++++++++++++++++++++++ - 2 files changed, 34 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.dg/ipa/pr96482-2.c - -diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c -index 2b21280d919..e4910a04ffa 100644 ---- a/gcc/ipa-cp.c -+++ b/gcc/ipa-cp.c -@@ -1048,7 +1048,7 @@ ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, - - widest_int old_mask = m_mask; - m_mask = (m_mask | mask) | (m_value ^ value); -- m_value &= value; -+ m_value &= ~m_mask; - - if (wi::sext (m_mask, precision) == -1) - return set_to_bottom (); -diff --git a/gcc/testsuite/gcc.dg/ipa/pr96482-2.c b/gcc/testsuite/gcc.dg/ipa/pr96482-2.c -new file mode 100644 -index 00000000000..54b71ac4fc0 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/ipa/pr96482-2.c -@@ -0,0 +1,33 @@ -+/* PR ipa/96482 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+int i2c_transfer(); -+void _dev_err(); -+ -+struct i2c_msg { -+ char bufaddr; -+ int adapterdev; -+} wdt87xx_i2c_xfer_client; -+ -+int wdt87xx_i2c_xfer_client_0, wdt87xx_i2c_xfer_rxdata, wdt87xx_get_string_str_idx; -+ -+void -+static wdt87xx_i2c_xfer(void *txdata, unsigned rxlen) { -+ struct i2c_msg msgs[] = {wdt87xx_i2c_xfer_client_0, rxlen, -+ wdt87xx_i2c_xfer_rxdata}; -+ int error = i2c_transfer(wdt87xx_i2c_xfer_client, msgs); -+ _dev_err("", __func__, error); -+} -+static void wdt87xx_get_string(unsigned len) { -+ char tx_buf[] = {wdt87xx_get_string_str_idx, 3}; -+ int rx_len = len + 2; -+ wdt87xx_i2c_xfer(tx_buf, rx_len); -+} -+ -+void -+wdt87xx_ts_probe_tx_buf() { -+ wdt87xx_get_string(34); -+ wdt87xx_get_string(8); -+ wdt87xx_i2c_xfer(wdt87xx_ts_probe_tx_buf, 2); -+} --- -2.28.0 - diff --git a/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch b/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch deleted file mode 100644 index cd812623cec3..000000000000 --- a/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch +++ /dev/null @@ -1,147 +0,0 @@ -From d58f078ce2d53e5dab6b3d0d5f960504268e1894 Mon Sep 17 00:00:00 2001 -From: Martin Liska <mliska@suse.cz> -Date: Wed, 12 Aug 2020 09:21:51 +0200 -Subject: [PATCH] ipa: fix bit CPP when combined with IPA bit CP - -As mentioned in the PR, let's consider the following example: - -int -__attribute__((noinline)) -foo(int arg) -{ - if (arg == 3) - return 1; - if (arg == 4) - return 123; - - __builtin_unreachable (); -} - -during WPA we find all calls of the function -(yes the call with value 5 is UBSAN): - - Node: foo/0: - param [0]: 5 [loc_time: 4, loc_size: 2, prop_time: 0, prop_size: 0] - 3 [loc_time: 3, loc_size: 3, prop_time: 0, prop_size: 0] - ctxs: VARIABLE - Bits: value = 0x5, mask = 0x6 - -in LTRANS we have the following VRP info: - - # RANGE [3, 3] NONZERO 3 - -when we AND masks in get_default_value we end up with 6 & 3 = 2 (0x010). -That means the only second (least significant bit) is unknown and -value (5 = 0x101) & ~mask gives us either 7 (0x111) or 5 (0x101). - -That's why if (arg_2(D) == 3) gets optimized to false. - -gcc/ChangeLog: - - PR ipa/96482 - * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits - for bits that are unknown. - (ipcp_bits_lattice::set_to_constant): Likewise. - * tree-ssa-ccp.c (get_default_value): Add sanity check that - IPA CP bit info has all bits set to zero in bits that - are unknown. - -gcc/testsuite/ChangeLog: - - PR ipa/96482 - * gcc.dg/ipa/pr96482.c: New test. ---- - gcc/ipa-cp.c | 3 +- - gcc/testsuite/gcc.dg/ipa/pr96482.c | 44 ++++++++++++++++++++++++++++++ - gcc/tree-ssa-ccp.c | 3 ++ - 3 files changed, 49 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.dg/ipa/pr96482.c - -diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c -index 945a69977f3..2b21280d919 100644 ---- a/gcc/ipa-cp.c -+++ b/gcc/ipa-cp.c -@@ -1011,7 +1011,7 @@ ipcp_bits_lattice::set_to_constant (widest_int value, widest_int mask) - { - gcc_assert (top_p ()); - m_lattice_val = IPA_BITS_CONSTANT; -- m_value = value; -+ m_value = wi::bit_and (wi::bit_not (mask), value); - m_mask = mask; - return true; - } -@@ -1048,6 +1048,7 @@ ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, - - widest_int old_mask = m_mask; - m_mask = (m_mask | mask) | (m_value ^ value); -+ m_value &= value; - - if (wi::sext (m_mask, precision) == -1) - return set_to_bottom (); -diff --git a/gcc/testsuite/gcc.dg/ipa/pr96482.c b/gcc/testsuite/gcc.dg/ipa/pr96482.c -new file mode 100644 -index 00000000000..68ead798d28 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/ipa/pr96482.c -@@ -0,0 +1,44 @@ -+/* PR ipa/96482 */ -+/* { dg-do run } */ -+/* { dg-options "-O2 -flto" } */ -+/* { dg-require-effective-target lto } */ -+ -+int -+__attribute__((noinline)) -+foo(int arg) -+{ -+ if (arg == 3) -+ return 1; -+ if (arg == 4) -+ return 123; -+ -+ __builtin_unreachable (); -+} -+ -+int -+__attribute__((noinline)) -+baz(int x) -+{ -+ if (x != 0) -+ return foo(3); /* called */ -+ -+ return 1; -+} -+ -+int -+__attribute__((noinline)) -+bar(int x) -+{ -+ if (x == 0) -+ return foo(5); /* not executed */ -+ -+ return 1; -+} -+ -+int main(int argc, char **argv) -+{ -+ if (bar(argc) != baz(argc)) -+ __builtin_abort (); -+ -+ return 0; -+} -diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c -index 7e3921869b8..65dffe06530 100644 ---- a/gcc/tree-ssa-ccp.c -+++ b/gcc/tree-ssa-ccp.c -@@ -306,6 +306,9 @@ get_default_value (tree var) - { - val.lattice_val = CONSTANT; - val.value = value; -+ widest_int ipa_value = wi::to_widest (value); -+ /* Unknown bits from IPA CP must be equal to zero. */ -+ gcc_assert (wi::bit_and (ipa_value, mask) == 0); - val.mask = mask; - if (nonzero_bits != -1) - val.mask &= extend_mask (nonzero_bits, --- -2.28.0 - |