gcc: update to version 7.4.0
This updates the GCC to the next minor release which fixes 178 bugs. The two removed patches are included in gcc 7.4.0 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
fbaf48387e
commit
af1aa07b07
@ -20,4 +20,4 @@ config GCC_VERSION
|
||||
default "5.5.0" if GCC_VERSION_5
|
||||
default "arc-2017.09-release" if GCC_VERSION_7_1_ARC
|
||||
default "8.2.0" if GCC_VERSION_8
|
||||
default "7.3.0"
|
||||
default "7.4.0"
|
||||
|
@ -32,8 +32,8 @@ ifeq ($(PKG_VERSION),5.5.0)
|
||||
PKG_HASH:=530cea139d82fe542b358961130c69cfde8b3d14556370b65823d2f91f0ced87
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_VERSION),7.3.0)
|
||||
PKG_HASH:=832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c
|
||||
ifeq ($(PKG_VERSION),7.4.0)
|
||||
PKG_HASH:=eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_VERSION),8.2.0)
|
||||
|
@ -1,178 +0,0 @@
|
||||
From: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||
Date: Mon, 19 Feb 2018 16:02:38 +0000
|
||||
Subject: [PATCH] PR libstdc++/81797 Add .NOTPARALLEL to include/Makefile for
|
||||
darwin
|
||||
|
||||
Backport from mainline
|
||||
2018-02-15 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/81797
|
||||
* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
|
||||
* configure: Regenerate.
|
||||
* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
|
||||
defined.
|
||||
* include/Makefile.in: Regenerate.
|
||||
|
||||
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@257808 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||
---
|
||||
|
||||
--- a/libstdc++-v3/configure
|
||||
+++ b/libstdc++-v3/configure
|
||||
@@ -620,6 +620,8 @@ CPU_DEFINES_SRCDIR
|
||||
ATOMIC_FLAGS
|
||||
ATOMIC_WORD_SRCDIR
|
||||
ATOMICITY_SRCDIR
|
||||
+INCLUDE_DIR_NOTPARALLEL_FALSE
|
||||
+INCLUDE_DIR_NOTPARALLEL_TRUE
|
||||
BUILD_PDF_FALSE
|
||||
BUILD_PDF_TRUE
|
||||
PDFLATEX
|
||||
@@ -11601,7 +11603,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 11604 "configure"
|
||||
+#line 11606 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -11707,7 +11709,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 11710 "configure"
|
||||
+#line 11712 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -15393,7 +15395,7 @@ $as_echo "$glibcxx_cv_atomic_long_long"
|
||||
# Fake what AC_TRY_COMPILE does.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15396 "configure"
|
||||
+#line 15398 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef bool atomic_type;
|
||||
@@ -15428,7 +15430,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6;
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15431 "configure"
|
||||
+#line 15433 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef short atomic_type;
|
||||
@@ -15463,7 +15465,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6;
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15466 "configure"
|
||||
+#line 15468 "configure"
|
||||
int main()
|
||||
{
|
||||
// NB: _Atomic_word not necessarily int.
|
||||
@@ -15499,7 +15501,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15502 "configure"
|
||||
+#line 15504 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef long long atomic_type;
|
||||
@@ -15580,7 +15582,7 @@ $as_echo "$as_me: WARNING: Performance o
|
||||
# unnecessary for this test.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15583 "configure"
|
||||
+#line 15585 "configure"
|
||||
int main()
|
||||
{
|
||||
_Decimal32 d1;
|
||||
@@ -15622,7 +15624,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||
# unnecessary for this test.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15625 "configure"
|
||||
+#line 15627 "configure"
|
||||
template<typename T1, typename T2>
|
||||
struct same
|
||||
{ typedef T2 type; };
|
||||
@@ -15656,7 +15658,7 @@ $as_echo "$enable_int128" >&6; }
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 15659 "configure"
|
||||
+#line 15661 "configure"
|
||||
template<typename T1, typename T2>
|
||||
struct same
|
||||
{ typedef T2 type; };
|
||||
@@ -81219,6 +81221,18 @@ else
|
||||
fi
|
||||
|
||||
|
||||
+case "$build" in
|
||||
+ *-*-darwin* ) glibcxx_include_dir_notparallel=yes ;;
|
||||
+ * ) glibcxx_include_dir_notparallel=no ;;
|
||||
+esac
|
||||
+ if test $glibcxx_include_dir_notparallel = "yes"; then
|
||||
+ INCLUDE_DIR_NOTPARALLEL_TRUE=
|
||||
+ INCLUDE_DIR_NOTPARALLEL_FALSE='#'
|
||||
+else
|
||||
+ INCLUDE_DIR_NOTPARALLEL_TRUE='#'
|
||||
+ INCLUDE_DIR_NOTPARALLEL_FALSE=
|
||||
+fi
|
||||
+
|
||||
|
||||
# Propagate the target-specific source directories through the build chain.
|
||||
ATOMICITY_SRCDIR=config/${atomicity_dir}
|
||||
@@ -81913,6 +81927,10 @@ if test -z "${BUILD_PDF_TRUE}" && test -
|
||||
as_fn_error "conditional \"BUILD_PDF\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${INCLUDE_DIR_NOTPARALLEL_TRUE}" && test -z "${INCLUDE_DIR_NOTPARALLEL_FALSE}"; then
|
||||
+ as_fn_error "conditional \"INCLUDE_DIR_NOTPARALLEL\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
|
||||
: ${CONFIG_STATUS=./config.status}
|
||||
ac_write_fail=0
|
||||
--- a/libstdc++-v3/configure.ac
|
||||
+++ b/libstdc++-v3/configure.ac
|
||||
@@ -467,6 +467,12 @@ AM_CONDITIONAL(BUILD_PDF,
|
||||
test $ac_cv_prog_DBLATEX = "yes" &&
|
||||
test $ac_cv_prog_PDFLATEX = "yes")
|
||||
|
||||
+case "$build" in
|
||||
+ *-*-darwin* ) glibcxx_include_dir_notparallel=yes ;;
|
||||
+ * ) glibcxx_include_dir_notparallel=no ;;
|
||||
+esac
|
||||
+AM_CONDITIONAL(INCLUDE_DIR_NOTPARALLEL,
|
||||
+ test $glibcxx_include_dir_notparallel = "yes")
|
||||
|
||||
# Propagate the target-specific source directories through the build chain.
|
||||
ATOMICITY_SRCDIR=config/${atomicity_dir}
|
||||
--- a/libstdc++-v3/include/Makefile.am
|
||||
+++ b/libstdc++-v3/include/Makefile.am
|
||||
@@ -1474,3 +1474,8 @@ $(decimal_headers): ; @:
|
||||
$(ext_headers): ; @:
|
||||
$(experimental_headers): ; @:
|
||||
$(experimental_bits_headers): ; @:
|
||||
+
|
||||
+if INCLUDE_DIR_NOTPARALLEL
|
||||
+# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
|
||||
+.NOTPARALLEL:
|
||||
+endif
|
||||
--- a/libstdc++-v3/include/Makefile.in
|
||||
+++ b/libstdc++-v3/include/Makefile.in
|
||||
@@ -1897,6 +1897,9 @@ $(ext_headers): ; @:
|
||||
$(experimental_headers): ; @:
|
||||
$(experimental_bits_headers): ; @:
|
||||
|
||||
+# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
|
||||
+@INCLUDE_DIR_NOTPARALLEL_TRUE@.NOTPARALLEL:
|
||||
+
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
@ -1,136 +0,0 @@
|
||||
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||
Date: Mon, 26 Feb 2018 16:29:30 +0000
|
||||
Subject: [PATCH] PR rtl-optimization/83496 * reorg.c
|
||||
(steal_delay_list_from_target): Change REDUNDANT array from booleans to
|
||||
RTXes. Call fix_reg_dead_note on every non-null element.
|
||||
(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
|
||||
redundant insn, if any. (relax_delay_slots): Likewise.
|
||||
(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
|
||||
|
||||
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257996 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||
---
|
||||
create mode 120000 gcc/testsuite/gcc.c-torture/execute/20180226-1.c
|
||||
|
||||
--- a/gcc/reorg.c
|
||||
+++ b/gcc/reorg.c
|
||||
@@ -1035,7 +1035,8 @@ check_annul_list_true_false (int annul_t
|
||||
|
||||
static void
|
||||
steal_delay_list_from_target (rtx_insn *insn, rtx condition, rtx_sequence *seq,
|
||||
- vec<rtx_insn *> *delay_list, resources *sets,
|
||||
+ vec<rtx_insn *> *delay_list,
|
||||
+ struct resources *sets,
|
||||
struct resources *needed,
|
||||
struct resources *other_needed,
|
||||
int slots_to_fill, int *pslots_filled,
|
||||
@@ -1048,7 +1049,7 @@ steal_delay_list_from_target (rtx_insn *
|
||||
int used_annul = 0;
|
||||
int i;
|
||||
struct resources cc_set;
|
||||
- bool *redundant;
|
||||
+ rtx_insn **redundant;
|
||||
|
||||
/* We can't do anything if there are more delay slots in SEQ than we
|
||||
can handle, or if we don't know that it will be a taken branch.
|
||||
@@ -1087,7 +1088,7 @@ steal_delay_list_from_target (rtx_insn *
|
||||
if (! targetm.can_follow_jump (insn, seq->insn (0)))
|
||||
return;
|
||||
|
||||
- redundant = XALLOCAVEC (bool, XVECLEN (seq, 0));
|
||||
+ redundant = XALLOCAVEC (rtx_insn *, XVECLEN (seq, 0));
|
||||
for (i = 1; i < seq->len (); i++)
|
||||
{
|
||||
rtx_insn *trial = seq->insn (i);
|
||||
@@ -1151,7 +1152,10 @@ steal_delay_list_from_target (rtx_insn *
|
||||
we therefore decided not to copy. */
|
||||
for (i = 1; i < seq->len (); i++)
|
||||
if (redundant[i])
|
||||
- update_block (seq->insn (i), insn);
|
||||
+ {
|
||||
+ fix_reg_dead_note (redundant[i], insn);
|
||||
+ update_block (seq->insn (i), insn);
|
||||
+ }
|
||||
|
||||
/* Show the place to which we will be branching. */
|
||||
*pnew_thread = first_active_target_insn (JUMP_LABEL (seq->insn (0)));
|
||||
@@ -1198,6 +1202,7 @@ steal_delay_list_from_fallthrough (rtx_i
|
||||
for (i = 1; i < seq->len (); i++)
|
||||
{
|
||||
rtx_insn *trial = seq->insn (i);
|
||||
+ rtx_insn *prior_insn;
|
||||
|
||||
/* If TRIAL sets CC0, stealing it will move it too far from the use
|
||||
of CC0. */
|
||||
@@ -1209,8 +1214,9 @@ steal_delay_list_from_fallthrough (rtx_i
|
||||
break;
|
||||
|
||||
/* If this insn was already done, we don't need it. */
|
||||
- if (redundant_insn (trial, insn, *delay_list))
|
||||
+ if ((prior_insn = redundant_insn (trial, insn, *delay_list)))
|
||||
{
|
||||
+ fix_reg_dead_note (prior_insn, insn);
|
||||
update_block (trial, insn);
|
||||
delete_from_delay_slot (trial);
|
||||
continue;
|
||||
@@ -1790,15 +1796,14 @@ fix_reg_dead_note (rtx_insn *start_insn,
|
||||
}
|
||||
}
|
||||
|
||||
-/* Delete any REG_UNUSED notes that exist on INSN but not on REDUNDANT_INSN.
|
||||
+/* Delete any REG_UNUSED notes that exist on INSN but not on OTHER_INSN.
|
||||
|
||||
This handles the case of udivmodXi4 instructions which optimize their
|
||||
- output depending on whether any REG_UNUSED notes are present.
|
||||
- we must make sure that INSN calculates as many results as REDUNDANT_INSN
|
||||
- does. */
|
||||
+ output depending on whether any REG_UNUSED notes are present. We must
|
||||
+ make sure that INSN calculates as many results as OTHER_INSN does. */
|
||||
|
||||
static void
|
||||
-update_reg_unused_notes (rtx_insn *insn, rtx redundant_insn)
|
||||
+update_reg_unused_notes (rtx_insn *insn, rtx other_insn)
|
||||
{
|
||||
rtx link, next;
|
||||
|
||||
@@ -1810,8 +1815,7 @@ update_reg_unused_notes (rtx_insn *insn,
|
||||
|| !REG_P (XEXP (link, 0)))
|
||||
continue;
|
||||
|
||||
- if (! find_regno_note (redundant_insn, REG_UNUSED,
|
||||
- REGNO (XEXP (link, 0))))
|
||||
+ if (!find_regno_note (other_insn, REG_UNUSED, REGNO (XEXP (link, 0))))
|
||||
remove_note (insn, link);
|
||||
}
|
||||
}
|
||||
@@ -2324,9 +2328,8 @@ follow_jumps (rtx label, rtx_insn *jump,
|
||||
taken and THREAD_IF_TRUE is set. This is used for the branch at the
|
||||
end of a loop back up to the top.
|
||||
|
||||
- OWN_THREAD and OWN_OPPOSITE_THREAD are true if we are the only user of the
|
||||
- thread. I.e., it is the fallthrough code of our jump or the target of the
|
||||
- jump when we are the only jump going there.
|
||||
+ OWN_THREAD is true if we are the only user of the thread, i.e. it is
|
||||
+ the target of the jump when we are the only jump going there.
|
||||
|
||||
If OWN_THREAD is false, it must be the "true" thread of a jump. In that
|
||||
case, we can only take insns from the head of the thread for our delay
|
||||
@@ -3117,7 +3120,7 @@ relax_delay_slots (rtx_insn *first)
|
||||
/* Look at every JUMP_INSN and see if we can improve it. */
|
||||
for (insn = first; insn; insn = next)
|
||||
{
|
||||
- rtx_insn *other;
|
||||
+ rtx_insn *other, *prior_insn;
|
||||
bool crossing;
|
||||
|
||||
next = next_active_insn (insn);
|
||||
@@ -3223,8 +3226,9 @@ relax_delay_slots (rtx_insn *first)
|
||||
/* See if the first insn in the delay slot is redundant with some
|
||||
previous insn. Remove it from the delay slot if so; then set up
|
||||
to reprocess this insn. */
|
||||
- if (redundant_insn (pat->insn (1), delay_insn, vNULL))
|
||||
+ if ((prior_insn = redundant_insn (pat->insn (1), delay_insn, vNULL)))
|
||||
{
|
||||
+ fix_reg_dead_note (prior_insn, insn);
|
||||
update_block (pat->insn (1), insn);
|
||||
delete_from_delay_slot (pat->insn (1));
|
||||
next = prev_active_insn (next);
|
@ -7,7 +7,7 @@ Date: Mon Mar 5 00:51:01 2012 +0000
|
||||
SVN-Revision: 30814
|
||||
--- a/gcc/config/rs6000/rs6000.c
|
||||
+++ b/gcc/config/rs6000/rs6000.c
|
||||
@@ -27001,7 +27001,7 @@ rs6000_savres_strategy (rs6000_stack_t *
|
||||
@@ -26981,7 +26981,7 @@ rs6000_savres_strategy (rs6000_stack_t *
|
||||
/* Define cutoff for using out-of-line functions to save registers. */
|
||||
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
|
||||
{
|
@ -114,7 +114,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000
|
||||
; On SVR4 targets, it also controls whether or not to emit a
|
||||
--- a/gcc/opts.c
|
||||
+++ b/gcc/opts.c
|
||||
@@ -1934,6 +1934,9 @@ common_handle_option (struct gcc_options
|
||||
@@ -1954,6 +1954,9 @@ common_handle_option (struct gcc_options
|
||||
opts, opts_set, loc, dc);
|
||||
break;
|
||||
|
||||
@ -126,7 +126,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000
|
||||
opts->x_warn_larger_than = value != -1;
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -6569,6 +6569,17 @@ This option is only supported for C and
|
||||
@@ -6572,6 +6572,17 @@ This option is only supported for C and
|
||||
@option{-Wall} and by @option{-Wpedantic}, which can be disabled with
|
||||
@option{-Wno-pointer-sign}.
|
||||
|
@ -22,7 +22,7 @@ Date: Fri Dec 12 17:01:57 2014 +0000
|
||||
|
||||
--- a/libstdc++-v3/include/Makefile.in
|
||||
+++ b/libstdc++-v3/include/Makefile.in
|
||||
@@ -1475,7 +1475,7 @@ stamp-bits: ${bits_headers}
|
||||
@@ -1474,7 +1474,7 @@ stamp-bits: ${bits_headers}
|
||||
@$(STAMP) stamp-bits
|
||||
|
||||
stamp-bits-sup: stamp-bits ${bits_sup_headers}
|
@ -63,7 +63,7 @@ Forward ported from attachment to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=4
|
||||
When preprocessing, handle directives, but do not expand macros.
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -11865,6 +11865,12 @@ by @option{-fplugin=@var{name}} instead
|
||||
@@ -11871,6 +11871,12 @@ by @option{-fplugin=@var{name}} instead
|
||||
@option{-fplugin=@var{path}/@var{name}.so}. This option is not meant
|
||||
to be used by the user, but only passed by the driver.
|
||||
|
Loading…
Reference in New Issue
Block a user