Bug 1868446 - Update gcc for RHEL 8.4 from upstream GCC 8.4
Summary: Update gcc for RHEL 8.4 from upstream GCC 8.4
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: gcc
Version: 8.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: 8.0
Assignee: Marek Polacek
QA Contact: Alexandra Petlanová Hájková
Zuzana Zoubkova
URL:
Whiteboard:
Depends On:
Blocks: 1894575
TreeView+ depends on / blocked
 
Reported: 2020-08-12 17:55 UTC by Marek Polacek
Modified: 2021-09-17 14:35 UTC (History)
7 users (show)

Fixed In Version: gcc-8.4.1-1.el8
Doc Type: Bug Fix
Doc Text:
.`gcc` rebased to version 8.4 The GNU Compiler Collection (GCC) has been rebased to upstream version 8.4, which provides a number of bug fixes over the previous version.
Clone Of:
Environment:
Last Closed: 2021-05-18 13:28:00 UTC
Type: Bug
Target Upstream Version:


Attachments (Terms of Use)

Description Marek Polacek 2020-08-12 17:55:52 UTC
RHEL 8 system gcc was last updated:
%global DATE 20191121
%global SVNREV 278589

we should consider updating gcc from upstream GCC 8.4, which contains a lot of bugfixes.

Comment 3 Marek Polacek 2020-09-30 14:50:22 UTC
Testsuite (compared with gcc-8.3.1-5.2.el8) looks good.  The only new FAILs I see are on s390x:

FAIL: gcc.dg/pr94780.c (internal compiler error)
FAIL: gcc.dg/pr94842.c (internal compiler error)

these tests were introduced in

commit b79f3e1e67ca0c5e14b677e3fc847a3c79881b5f
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Apr 30 21:48:30 2020 +0200

    c: Fix ICE with _Atomic side-effect in nested fn param decls [PR94842]

and

commit a8a6b29393dbc13d81fdc5d354526452bd79fb94
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Apr 27 21:14:52 2020 +0200

    x86: Fix up ix86_atomic_assign_expand_fenv [PR94780]

the ICE is

/builddir/build/BUILD/gcc-8.4.1-20200928/gcc/testsuite/gcc.dg/pr94780.c:8:1: internal compiler error: Segmentation fault^M
0x2aa00428e71 crash_signal^M
        ../../gcc/toplev.c:326^M
0x2aa00474ff4 get_frame_type^M
        ../../gcc/tree-nested.c:212^M
0x2aa004750bd get_chain_decl^M
        ../../gcc/tree-nested.c:317^M
0x2aa0047737f get_nonlocal_debug_decl^M
        ../../gcc/tree-nested.c:919^M
0x2aa004777df convert_nonlocal_reference_op^M
        ../../gcc/tree-nested.c:998^M
0x2aa00c78677 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*))^M
        ../../gcc/tree.c:11402^M
0x2aa0091737d walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*)^M
        ../../gcc/gimple-walk.c:268^M
0x2aa00916681 walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*)^M
        ../../gcc/gimple-walk.c:586^M
0x2aa00916463 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*)^M
        ../../gcc/gimple-walk.c:51^M
0x2aa0091665f walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*)^M
        ../../gcc/gimple-walk.c:595^M
0x2aa00916463 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*)^M
        ../../gcc/gimple-walk.c:51^M
0x2aa00474959 walk_body^M
        ../../gcc/tree-nested.c:662^M
0x2aa00474c9b walk_function^M
        ../../gcc/tree-nested.c:673^M
0x2aa00474d23 walk_all_functions^M
        ../../gcc/tree-nested.c:738^M
0x2aa00479d01 lower_nested_functions(tree_node*)^M
        ../../gcc/tree-nested.c:3394^M
0x2aa007da47f cgraph_node::analyze()^M
        ../../gcc/cgraphunit.c:676^M
0x2aa007da47f analyze_functions^M
        ../../gcc/cgraphunit.c:1131^M
0x2aa007d7fa3 symbol_table::finalize_compilation_unit()^M
        ../../gcc/cgraphunit.c:2691^M

which reminds me of an ancient ICE I reported years ago: https://gcc.gnu.org/PR60085

I wouldn't consider this a blocker at all.

Comment 4 Marek Polacek 2020-09-30 15:09:53 UTC
Jakub has a patch for the two FAILs.  I might pull that in if there's a need for a rebuild.

Comment 5 Jakub Jelinek 2020-09-30 15:15:00 UTC
Yes:
2020-09-30  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
	fenv_var and old_fpc.  Formatting fixes.

--- gcc/config/s390/s390.c.jj	2020-09-14 09:04:36.086851054 +0200
+++ gcc/config/s390/s390.c	2020-09-30 10:22:50.579603271 +0200
@@ -16082,12 +16082,13 @@ s390_atomic_assign_expand_fenv (tree *ho
 
      fenv_var = __builtin_s390_efpc ();
      __builtin_s390_sfpc (fenv_var & mask) */
-  tree old_fpc = build2 (MODIFY_EXPR, unsigned_type_node, fenv_var, call_efpc);
-  tree new_fpc =
-    build2 (BIT_AND_EXPR, unsigned_type_node, fenv_var,
-	    build_int_cst (unsigned_type_node,
-			   ~(FPC_DXC_MASK | FPC_FLAGS_MASK |
-			     FPC_EXCEPTION_MASK)));
+  tree old_fpc = build4 (TARGET_EXPR, unsigned_type_node, fenv_var, call_efpc,
+			 NULL_TREE, NULL_TREE);
+  tree new_fpc
+    = build2 (BIT_AND_EXPR, unsigned_type_node, fenv_var,
+	      build_int_cst (unsigned_type_node,
+			     ~(FPC_DXC_MASK | FPC_FLAGS_MASK
+			       | FPC_EXCEPTION_MASK)));
   tree set_new_fpc = build_call_expr (sfpc, 1, new_fpc);
   *hold = build2 (COMPOUND_EXPR, void_type_node, old_fpc, set_new_fpc);
 
@@ -16106,8 +16107,8 @@ s390_atomic_assign_expand_fenv (tree *ho
   __atomic_feraiseexcept ((old_fpc & FPC_FLAGS_MASK) >> FPC_FLAGS_SHIFT);  */
 
   old_fpc = create_tmp_var_raw (unsigned_type_node);
-  tree store_old_fpc = build2 (MODIFY_EXPR, void_type_node,
-			       old_fpc, call_efpc);
+  tree store_old_fpc = build4 (TARGET_EXPR, void_type_node, old_fpc, call_efpc,
+			       NULL_TREE, NULL_TREE);
 
   set_new_fpc = build_call_expr (sfpc, 1, fenv_var);
 

I don't see those FAILs in the scratch build.log I'm doing in f34, but it hasn't finished yet.

Comment 17 errata-xmlrpc 2021-05-18 13:28:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (gcc bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:1571


Note You need to log in before you can comment on or make changes to this bug.