summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Zou2018-07-26 19:53:03 +0200
committerMichel Zou2018-07-26 19:53:03 +0200
commitc393153d9e5b4fc1739e70190acb5b080ffbf7ea (patch)
tree371f1465ebc36ca8f28fc123f7cfcfd3bb3c9461
parenta9fd93c90fc4611579ff302991c5970c5a92b54e (diff)
downloadaur-c393153d9e5b4fc1739e70190acb5b080ffbf7ea.tar.gz
8.2.0
-rw-r--r--.SRCINFO14
-rw-r--r--PKGBUILD15
-rw-r--r--bz85638.patch180
3 files changed, 11 insertions, 198 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 530073e00956..675ea6ccffff 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = mingw-w64-gcc
pkgdesc = Cross GCC for the MinGW-w64 cross-compiler
- pkgver = 8.1.0
+ pkgver = 8.2.0
pkgrel = 1
url = http://gcc.gnu.org
arch = x86_64
@@ -22,17 +22,15 @@ pkgbase = mingw-w64-gcc
options = staticlibs
options = !emptydirs
options = !buildflags
- source = https://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.xz
- source = https://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.xz.sig
- source = http://isl.gforge.inria.fr/isl-0.18.tar.bz2
- source = bz85638.patch
+ source = https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz
+ source = https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz.sig
+ source = http://isl.gforge.inria.fr/isl-0.19.tar.bz2
validpgpkeys = F3691687D867B81B51CE07D9BBE43771487328A9
validpgpkeys = 13975A70E63C361C73AE69EF6EEB81F8981C74C7
validpgpkeys = 33C235A34C46AA3FFB293709A328C3A2C3C45C06
- sha256sums = 1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153
+ sha256sums = 196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080
sha256sums = SKIP
- sha256sums = 6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b
- sha256sums = d2a13f550ca7f9131ef14239e8f994b37c81fc8c59f73aff5edab170f5ed6124
+ sha256sums = d59726f34f7852a081fbd3defd1ab2136f174110fc2e0c8d10bb122173fa9ed8
pkgname = mingw-w64-gcc
diff --git a/PKGBUILD b/PKGBUILD
index 457a77c58c8a..bfb71c6c5187 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
pkgname=mingw-w64-gcc
-pkgver=8.1.0
-_islver=0.18
+pkgver=8.2.0
+_islver=0.19
pkgrel=1
pkgdesc="Cross GCC for the MinGW-w64 cross-compiler"
arch=('x86_64')
@@ -24,24 +24,19 @@ backup=()
options=('!strip' 'staticlibs' '!emptydirs' '!buildflags')
#source=(https://sources.archlinux.org/other/gcc/gcc-${pkgver/+/-}.tar.xz{,.sig}
source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
- "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
- bz85638.patch)
+ "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2")
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com
33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com>
-sha256sums=('1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153'
+sha256sums=('196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080'
'SKIP'
- '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b'
- 'd2a13f550ca7f9131ef14239e8f994b37c81fc8c59f73aff5edab170f5ed6124')
+ 'd59726f34f7852a081fbd3defd1ab2136f174110fc2e0c8d10bb122173fa9ed8')
prepare() {
ln -sf gcc-${pkgver/+/-} gcc
cd "$srcdir"/gcc
# link isl for in-tree builds
ln -sf ../isl-${_islver} isl
-
- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85638
- patch -p0 -i "$srcdir"/bz85638.patch
}
build() {
diff --git a/bz85638.patch b/bz85638.patch
deleted file mode 100644
index 9ed00e836d3c..000000000000
--- a/bz85638.patch
+++ /dev/null
@@ -1,180 +0,0 @@
---- gcc/bb-reorder.c (revision 259642)
-+++ gcc/bb-reorder.c (working copy)
-@@ -117,6 +117,7 @@
- #include "fibonacci_heap.h"
- #include "stringpool.h"
- #include "attribs.h"
-+#include "common/common-target.h"
-
- /* The number of rounds. In most cases there will only be 4 rounds, but
- when partitioning hot and cold basic blocks into separate sections of
-@@ -1408,17 +1409,95 @@ get_uncond_jump_length (void)
- return length;
- }
-
-+/* Create a forwarder block to OLD_BB starting with NEW_LABEL and in the
-+ other partition wrt OLD_BB. */
-+
-+static basic_block
-+create_forwarder_block (rtx_code_label *new_label, basic_block old_bb)
-+{
-+ /* Put the new label and a jump in the new basic block. */
-+ rtx_insn *label = emit_label (new_label);
-+ rtx_code_label *old_label = block_label (old_bb);
-+ rtx_insn *jump = emit_jump_insn (targetm.gen_jump (old_label));
-+ JUMP_LABEL (jump) = old_label;
-+
-+ /* Create the new basic block and put it in last position. */
-+ basic_block last_bb = EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb;
-+ basic_block new_bb = create_basic_block (label, jump, last_bb);
-+ new_bb->aux = last_bb->aux;
-+ new_bb->count = old_bb->count;
-+ last_bb->aux = new_bb;
-+
-+ emit_barrier_after_bb (new_bb);
-+
-+ make_single_succ_edge (new_bb, old_bb, 0);
-+
-+ /* Make sure the new basic block is in the other partition. */
-+ unsigned new_partition = BB_PARTITION (old_bb);
-+ new_partition ^= BB_HOT_PARTITION | BB_COLD_PARTITION;
-+ BB_SET_PARTITION (new_bb, new_partition);
-+
-+ return new_bb;
-+}
-+
-+/* The common landing pad in block OLD_BB has edges from both partitions.
-+ Add a new landing pad that will just jump to the old one and split the
-+ edges so that no EH edge crosses partitions. */
-+
-+static void
-+sjlj_fix_up_crossing_landing_pad (basic_block old_bb)
-+{
-+ const unsigned lp_len = cfun->eh->lp_array->length ();
-+ edge_iterator ei;
-+ edge e;
-+
-+ /* Generate the new common landing-pad label. */
-+ rtx_code_label *new_label = gen_label_rtx ();
-+ LABEL_PRESERVE_P (new_label) = 1;
-+
-+ /* Create the forwarder block. */
-+ basic_block new_bb = create_forwarder_block (new_label, old_bb);
-+
-+ /* Create the map from old to new lp index and initialize it. */
-+ unsigned *index_map = (unsigned *) alloca (lp_len * sizeof (unsigned));
-+ memset (index_map, 0, lp_len * sizeof (unsigned));
-+
-+ /* Fix up the edges. */
-+ for (ei = ei_start (old_bb->preds); (e = ei_safe_edge (ei)) != NULL; )
-+ if (e->src != new_bb && BB_PARTITION (e->src) == BB_PARTITION (new_bb))
-+ {
-+ rtx_insn *insn = BB_END (e->src);
-+ rtx note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);
-+
-+ gcc_assert (note != NULL);
-+ const unsigned old_index = INTVAL (XEXP (note, 0));
-+
-+ /* Generate the new landing-pad structure. */
-+ if (index_map[old_index] == 0)
-+ {
-+ eh_landing_pad old_lp = (*cfun->eh->lp_array)[old_index];
-+ eh_landing_pad new_lp = gen_eh_landing_pad (old_lp->region);
-+ new_lp->post_landing_pad = old_lp->post_landing_pad;
-+ new_lp->landing_pad = new_label;
-+ index_map[old_index] = new_lp->index;
-+ }
-+ XEXP (note, 0) = GEN_INT (index_map[old_index]);
-+
-+ /* Adjust the edge to the new destination. */
-+ redirect_edge_succ (e, new_bb);
-+ }
-+ else
-+ ei_next (&ei);
-+}
-+
- /* The landing pad OLD_LP, in block OLD_BB, has edges from both partitions.
- Add a new landing pad that will just jump to the old one and split the
- edges so that no EH edge crosses partitions. */
-
- static void
--fix_up_crossing_landing_pad (eh_landing_pad old_lp, basic_block old_bb)
-+dw2_fix_up_crossing_landing_pad (eh_landing_pad old_lp, basic_block old_bb)
- {
- eh_landing_pad new_lp;
-- basic_block new_bb, last_bb;
-- rtx_insn *jump;
-- unsigned new_partition;
- edge_iterator ei;
- edge e;
-
-@@ -1428,32 +1507,12 @@ fix_up_crossing_landing_pad (eh_landing_
- new_lp->landing_pad = gen_label_rtx ();
- LABEL_PRESERVE_P (new_lp->landing_pad) = 1;
-
-- /* Put appropriate instructions in new bb. */
-- rtx_code_label *new_label = emit_label (new_lp->landing_pad);
--
-- rtx_code_label *old_label = block_label (old_bb);
-- jump = emit_jump_insn (targetm.gen_jump (old_label));
-- JUMP_LABEL (jump) = old_label;
--
-- /* Create new basic block to be dest for lp. */
-- last_bb = EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb;
-- new_bb = create_basic_block (new_label, jump, last_bb);
-- new_bb->aux = last_bb->aux;
-- new_bb->count = old_bb->count;
-- last_bb->aux = new_bb;
--
-- emit_barrier_after_bb (new_bb);
--
-- make_single_succ_edge (new_bb, old_bb, 0);
--
-- /* Make sure new bb is in the other partition. */
-- new_partition = BB_PARTITION (old_bb);
-- new_partition ^= BB_HOT_PARTITION | BB_COLD_PARTITION;
-- BB_SET_PARTITION (new_bb, new_partition);
-+ /* Create the forwarder block. */
-+ basic_block new_bb = create_forwarder_block (new_lp->landing_pad, old_bb);
-
- /* Fix up the edges. */
- for (ei = ei_start (old_bb->preds); (e = ei_safe_edge (ei)) != NULL; )
-- if (e->src != new_bb && BB_PARTITION (e->src) == new_partition)
-+ if (e->src != new_bb && BB_PARTITION (e->src) == BB_PARTITION (new_bb))
- {
- rtx_insn *insn = BB_END (e->src);
- rtx note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);
-@@ -1651,9 +1710,11 @@ find_rarely_executed_basic_blocks_and_cr
-
- /* The format of .gcc_except_table does not allow landing pads to
- be in a different partition as the throw. Fix this by either
-- moving or duplicating the landing pads. */
-+ moving the landing pads or inserting forwarder landing pads. */
- if (cfun->eh->lp_array)
- {
-+ const bool sjlj
-+ = (targetm_common.except_unwind_info (&global_options) == UI_SJLJ);
- unsigned i;
- eh_landing_pad lp;
-
-@@ -1685,13 +1746,18 @@ find_rarely_executed_basic_blocks_and_cr
- which ^= BB_HOT_PARTITION | BB_COLD_PARTITION;
- BB_SET_PARTITION (bb, which);
- }
-+ else if (sjlj)
-+ sjlj_fix_up_crossing_landing_pad (bb);
- else
-- fix_up_crossing_landing_pad (lp, bb);
-+ dw2_fix_up_crossing_landing_pad (lp, bb);
-+
-+ /* There is a single, common landing pad in SJLJ mode. */
-+ if (sjlj)
-+ break;
- }
- }
-
- /* Mark every edge that crosses between sections. */
--
- FOR_EACH_BB_FN (bb, cfun)
- FOR_EACH_EDGE (e, ei, bb->succs)
- {