Hello community, here is the log from the commit of package gcc7 for openSUSE:Factory checked in at 2017-08-24 17:39:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gcc7 (Old) and /work/SRC/openSUSE:Factory/.gcc7.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc7" Thu Aug 24 17:39:51 2017 rev:5 rq:515187 version:7.1.1+r250819 Changes: -------- --- /work/SRC/openSUSE:Factory/gcc7/cross-aarch64-gcc7.changes 2017-07-04 09:06:46.237185923 +0200 +++ /work/SRC/openSUSE:Factory/.gcc7.new/cross-aarch64-gcc7.changes 2017-08-24 17:39:51.910331197 +0200 @@ -1,0 +2,15 @@ +Tue Aug 8 12:38:37 UTC 2017 - rguent...@suse.com + +- Add gcc7-pr81766.diff to fix grub2 build. + +------------------------------------------------------------------- +Fri Aug 4 11:41:36 UTC 2017 - rguent...@suse.com + +- Update to gcc-7-branch head (r250819). + * Includes GCC 7.2 RC1. + * Includes fix for gcov crash. [bnc#1050487] +- Add gcc7-stack-probe.diff for support of -fstack-clash-protection + [bnc#1039513]. +- Add gcc7-go-sigrtmax.patch to fix Go build with glibc 2.26. + +------------------------------------------------------------------- cross-arm-gcc7.changes: same change cross-avr-gcc7.changes: same change cross-epiphany-gcc7-bootstrap.changes: same change cross-epiphany-gcc7.changes: same change cross-hppa-gcc7.changes: same change cross-i386-gcc7.changes: same change cross-m68k-gcc7.changes: same change cross-mips-gcc7.changes: same change cross-nvptx-gcc7.changes: same change cross-ppc64-gcc7.changes: same change cross-ppc64le-gcc7.changes: same change cross-rx-gcc7-bootstrap.changes: same change cross-rx-gcc7.changes: same change cross-s390x-gcc7.changes: same change cross-sparc-gcc7.changes: same change cross-sparc64-gcc7.changes: same change cross-x86_64-gcc7.changes: same change gcc7-testresults.changes: same change gcc7.changes: same change Old: ---- gcc-7.1.1-r249772.tar.xz New: ---- gcc-7.1.1-r250819.tar.xz gcc7-go-sigrtmax.patch gcc7-pr81766.diff gcc7-stack-probe.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cross-aarch64-gcc7.spec ++++++ --- /var/tmp/diff_new_pack.bWgRfa/_old 2017-08-24 17:40:04.008627916 +0200 +++ /var/tmp/diff_new_pack.bWgRfa/_new 2017-08-24 17:40:04.016626790 +0200 @@ -157,7 +157,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 Url: http://gcc.gnu.org/ -Version: 7.1.1+r249772 +Version: 7.1.1+r250819 Release: 0 %define gcc_version %(echo %version | sed 's/+.*//') %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1) @@ -176,6 +176,9 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch10: gcc5-no-return-gcc43-workaround.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch +Patch12: gcc7-stack-probe.diff +Patch13: gcc7-go-sigrtmax.patch +Patch14: gcc7-pr81766.diff # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -249,6 +252,9 @@ %endif %patch10 %patch11 +%patch12 +%patch13 +%patch14 %patch51 %patch60 %patch61 cross-arm-gcc7.spec: same change cross-avr-gcc7.spec: same change cross-epiphany-gcc7-bootstrap.spec: same change cross-epiphany-gcc7.spec: same change cross-hppa-gcc7.spec: same change cross-i386-gcc7.spec: same change cross-m68k-gcc7.spec: same change cross-mips-gcc7.spec: same change cross-nvptx-gcc7.spec: same change cross-ppc64-gcc7.spec: same change cross-ppc64le-gcc7.spec: same change cross-rx-gcc7-bootstrap.spec: same change cross-rx-gcc7.spec: same change cross-s390x-gcc7.spec: same change cross-sparc-gcc7.spec: same change cross-sparc64-gcc7.spec: same change cross-x86_64-gcc7.spec: same change gcc7-testresults.spec: same change ++++++ gcc7.spec ++++++ --- /var/tmp/diff_new_pack.bWgRfa/_old 2017-08-24 17:40:05.232455617 +0200 +++ /var/tmp/diff_new_pack.bWgRfa/_new 2017-08-24 17:40:05.256452238 +0200 @@ -235,7 +235,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 Url: http://gcc.gnu.org/ -Version: 7.1.1+r249772 +Version: 7.1.1+r250819 Release: 0 %define gcc_version %(echo %version | sed 's/+.*//') %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1) @@ -296,6 +296,9 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch10: gcc5-no-return-gcc43-workaround.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch +Patch12: gcc7-stack-probe.diff +Patch13: gcc7-go-sigrtmax.patch +Patch14: gcc7-pr81766.diff # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -1743,6 +1746,9 @@ %endif %patch10 %patch11 +%patch12 +%patch13 +%patch14 %patch51 %patch60 %patch61 ++++++ gcc-7.1.1-r249772.tar.xz -> gcc-7.1.1-r250819.tar.xz ++++++ /work/SRC/openSUSE:Factory/gcc7/gcc-7.1.1-r249772.tar.xz /work/SRC/openSUSE:Factory/.gcc7.new/gcc-7.1.1-r250819.tar.xz differ: char 27, line 1 ++++++ gcc.spec.in ++++++ --- /var/tmp/diff_new_pack.bWgRfa/_old 2017-08-24 17:40:05.560409445 +0200 +++ /var/tmp/diff_new_pack.bWgRfa/_new 2017-08-24 17:40:05.560409445 +0200 @@ -239,7 +239,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: http://gcc.gnu.org/ -Version: 7.1.1+r249772 +Version: 7.1.1+r250819 Release: 1 %define gcc_version %(echo %version | sed 's/+.*//') %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1) @@ -301,6 +301,9 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch10: gcc5-no-return-gcc43-workaround.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch +Patch12: gcc7-stack-probe.diff +Patch13: gcc7-go-sigrtmax.patch +Patch14: gcc7-pr81766.diff # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -1053,6 +1056,9 @@ %endif %patch10 %patch11 +%patch12 +%patch13 +%patch14 %patch51 %patch60 %patch61 ++++++ gcc7-go-sigrtmax.patch ++++++ Index: libgo/mksigtab.sh =================================================================== --- libgo/mksigtab.sh (revision 250846) +++ libgo/mksigtab.sh (working copy) @@ -86,6 +86,14 @@ if test "${GOOS}" = "linux"; then fi nsig=`grep 'const _*NSIG = [0-9]*$' gen-sysinfo.go | sed -e 's/.* = \([0-9]*\)/\1/'` +if test -z "$nsig"; then + if grep 'const _*NSIG = [ (]*_*SIGRTMAX + 1[ )]*' gen-sysinfo.go >/dev/null 2>&1; then + rtmax=`grep 'const _*SIGRTMAX = [0-9]*$' gen-sysinfo.go | sed -e 's/.* = \([0-9]*\)/\1/'` + if test -n "$rtmax"; then + nsig=`expr $rtmax + 1` + fi + fi +fi i=1 while test "$i" -lt "$nsig"; do if ! grep "const _SIG.* = $i" gen-sysinfo.go >/dev/null 2>&1; then ++++++ gcc7-pr81766.diff ++++++ 2017-08-08 Richard Biener <rguent...@suse.de> PR middle-end/81766 * function.c (thread_prologue_and_epilogue_insns): Restore behavior of always calling find_many_sub_basic_blocks on the inserted prologue. * gcc.target/i386/pr81766.c: New testcase. Index: gcc/function.c =================================================================== --- gcc/function.c (revision 250947) +++ gcc/function.c (working copy) @@ -6082,17 +6082,16 @@ thread_prologue_and_epilogue_insns (void if (prologue_insn && BLOCK_FOR_INSN (prologue_insn) == NULL) prologue_insn = NULL; - if (split_prologue_insn || prologue_insn) - { - auto_sbitmap blocks (last_basic_block_for_fn (cfun)); - bitmap_clear (blocks); - if (split_prologue_insn) - bitmap_set_bit (blocks, - BLOCK_FOR_INSN (split_prologue_insn)->index); - if (prologue_insn) - bitmap_set_bit (blocks, BLOCK_FOR_INSN (prologue_insn)->index); - find_many_sub_basic_blocks (blocks); - } + auto_sbitmap blocks (last_basic_block_for_fn (cfun)); + bitmap_clear (blocks); + if (split_prologue_insn) + bitmap_set_bit (blocks, + BLOCK_FOR_INSN (split_prologue_insn)->index); + if (prologue_insn) + bitmap_set_bit (blocks, BLOCK_FOR_INSN (prologue_insn)->index); + bitmap_set_bit (blocks, entry_edge->dest->index); + bitmap_set_bit (blocks, orig_entry_edge->dest->index); + find_many_sub_basic_blocks (blocks); } default_rtl_profile (); Index: gcc/testsuite/gcc.target/i386/pr81766.c =================================================================== --- gcc/testsuite/gcc.target/i386/pr81766.c (nonexistent) +++ gcc/testsuite/gcc.target/i386/pr81766.c (working copy) @@ -0,0 +1,5 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target lp64 } */ +/* { dg-options "-O2 -fPIE -mcmodel=large" } */ + +int main() { return 0; } ++++++ gcc7-stack-probe.diff ++++++ Index: gcc/common.opt =================================================================== --- gcc/common.opt (revision 244266) +++ gcc/common.opt (working copy) @@ -2295,6 +2299,10 @@ fstack-check Common Alias(fstack-check=, specific, no) Insert stack checking code into the program. Same as -fstack-check=specific. +fstack-clash-protection +Common Report Var(flag_stack_clash_protection) +Insert probes per page for dynamically allocated stack space + fstack-limit Common Var(common_deferred_options) Defer Index: gcc/explow.c =================================================================== --- gcc/explow.c (revision 244266) +++ gcc/explow.c (working copy) @@ -1277,6 +1277,8 @@ get_dynamic_stack_size (rtx *psize, unsi *psize = size; } +#define PROBE_INTERVAL (1 << STACK_CHECK_PROBE_INTERVAL_EXP) + /* Return an rtx representing the address of an area of memory dynamically pushed on the stack. @@ -1305,6 +1307,8 @@ allocate_dynamic_stack_space (rtx size, HOST_WIDE_INT stack_usage_size = -1; rtx_code_label *final_label; rtx final_target, target; + rtx loop_lab, end_lab, last_size; + int probe_pass = 0; /* If we're asking for zero bytes, it doesn't matter what we point to since we can't dereference it. But return a reasonable @@ -1440,6 +1444,24 @@ allocate_dynamic_stack_space (rtx size, /* Don't let anti_adjust_stack emit notes. */ suppress_reg_args_size = true; + if (flag_stack_clash_protection) + { +#ifndef STACK_GROWS_DOWNWARD + sorry("-fstack-clash-protection is incompatible with upward growing stack"); +#endif + size = copy_to_mode_reg (Pmode, convert_to_mode (Pmode, size, 1)); + loop_lab = gen_label_rtx (); + end_lab = gen_label_rtx (); + emit_label (loop_lab); + emit_cmp_and_jump_insns (size, GEN_INT (PROBE_INTERVAL), LTU, + NULL_RTX, Pmode, 1, end_lab); + last_size = expand_binop (Pmode, sub_optab, size, GEN_INT (PROBE_INTERVAL), size, + 1, OPTAB_WIDEN); + gcc_assert (last_size == size); + size = GEN_INT (PROBE_INTERVAL); + } + +again: /* Perform the required allocation from the stack. Some systems do this differently than simply incrementing/decrementing from the stack pointer, such as acquiring the space by calling malloc(). */ @@ -1499,6 +1521,15 @@ allocate_dynamic_stack_space (rtx size, if (STACK_GROWS_DOWNWARD) emit_move_insn (target, virtual_stack_dynamic_rtx); } + if (flag_stack_clash_protection && probe_pass == 0) + { + probe_pass = 1; + emit_stack_probe (target); + emit_jump (loop_lab); + emit_label (end_lab); + size = last_size; + goto again; + } suppress_reg_args_size = false; @@ -1510,6 +1541,8 @@ allocate_dynamic_stack_space (rtx size, emit_label (final_label); target = final_target; } + if (flag_stack_clash_protection) + emit_stack_probe (target); target = align_dynamic_address (target, required_align); @@ -1593,8 +1626,6 @@ emit_stack_probe (rtx address) the current stack pointer. STACK_GROWS_DOWNWARD says whether to add or subtract them from the stack pointer. */ -#define PROBE_INTERVAL (1 << STACK_CHECK_PROBE_INTERVAL_EXP) - #if STACK_GROWS_DOWNWARD #define STACK_GROW_OP MINUS #define STACK_GROW_OPTAB sub_optab