From aaef794ebb51248bd0358a3fbff7557eb3343ed8 Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Sat, 19 Dec 2020 00:03:08 +0000 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/gcc.git#9f8a6fd89413ffd0fbe3bf158b0eb690617e9cbb --- .gitignore | 2 + gcc.spec | 51 +++++++++++++- gcc11-c++tools.patch | 86 ++++++++++++++++++++++++ gcc11-pr98282.patch | 118 +++++++++++++++++++++++++++++++++ gcc11-pr98338-workaround.patch | 17 +++++ sources | 2 +- 6 files changed, 272 insertions(+), 4 deletions(-) create mode 100644 gcc11-c++tools.patch create mode 100644 gcc11-pr98282.patch create mode 100644 gcc11-pr98338-workaround.patch diff --git a/.gitignore b/.gitignore index 0d11d30..6f12cd3 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ /gcc-10.2.1-20201112.tar.xz /gcc-10.2.1-20201125.tar.xz /gcc-11.0.0-20201204.tar.xz +/gcc-11.0.0-20201216.tar.xz +/gcc-11.0.0-20201217.tar.xz diff --git a/gcc.spec b/gcc.spec index acd4ef1..e962506 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20201204 -%global gitrev d35391d824edee33b5fbce3df058f4fafd9b9fa6 +%global DATE 20201216 +%global gitrev ada196afb999077a634220ace175f349418e3078 %global gcc_version 11.0.0 %global gcc_major 11 # Note, gcc_release must be integer, if you want to add suffixes to @@ -119,7 +119,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.7%{?dist} +Release: %{gcc_release}.10%{?dist} # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -272,6 +272,9 @@ Patch8: gcc11-foffload-default.patch Patch9: gcc11-Wno-format-security.patch Patch10: gcc11-rh1574936.patch Patch11: gcc11-d-shared-libphobos.patch +Patch12: gcc11-pr98282.patch +Patch13: gcc11-pr98338-workaround.patch +Patch14: gcc11-c++tools.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -783,6 +786,9 @@ to NVidia PTX capable devices if available. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ +%patch12 -p0 -b .pr98282~ +%patch13 -p0 -b .pr98338-workaround~ +%patch14 -p0 -b .c++tools~ echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE @@ -2403,6 +2409,7 @@ end %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so @@ -3066,6 +3073,44 @@ end %endif %changelog +* Thu Dec 17 2020 Jakub Jelinek 11.0.0-0.10 +- apply workaround for profiledbootstrap x86_64 failure +- put g++-mapper-server into the right directory + +* Wed Dec 16 2020 Jakub Jelinek 11.0.0-0.8 +- update from trunk + - PRs ada/98230, bootstrap/98188, c++/57111, c++/59238, c++/68451, + c++/78173, c++/91506, c++/93083, c++/96299, c++/97093, c++/97517, + c++/98043, c++/98103, c++/98122, c++/98126, c++/98130, c++/98187, + c++/98193, c/97981, c/98200, d/98277, fortran/90207, fortran/98016, + fortran/98022, gcov-profile/98273, libstdc++/98108, libstdc++/98226, + lto/98275, middle-end/94600, middle-end/98160, middle-end/98166, + middle-end/98183, middle-end/98190, middle-end/98205, + middle-end/98264, rtl-optimization/97092, rtl-optimization/97421, + rtl-optimization/98212, rtl-optimization/98229, sanitizer/98204, + target/58901, target/66791, target/92469, target/94440, target/95294, + target/96226, target/96470, target/97865, target/97872, target/98100, + target/98147, target/98152, target/98161, target/98162, target/98219, + target/98274, testsuite/95900, testsuite/98123, testsuite/98156, + testsuite/98239, testsuite/98240, testsuite/98242, testsuite/98244, + tree-optimization/95582, tree-optimization/96094, + tree-optimization/96232, tree-optimization/96272, + tree-optimization/96344, tree-optimization/96685, + tree-optimization/97559, tree-optimization/97929, + tree-optimization/98069, tree-optimization/98113, + tree-optimization/98117, tree-optimization/98137, + tree-optimization/98169, tree-optimization/98174, + tree-optimization/98180, tree-optimization/98182, + tree-optimization/98191, tree-optimization/98192, + tree-optimization/98199, tree-optimization/98211, + tree-optimization/98213, tree-optimization/98235, + tree-optimization/98256 + - C++20 modules support + - fix up __patchable_function_entries handling when gcc is configured + against recent binutils (#1907945) +- fix up handling of non-memory VIEW_CONVERT_EXPRs in PRE + (PR tree-optimization/98282) + * Fri Dec 4 2020 Jakub Jelinek 11.0.0-0.7 - update from trunk - PRs bootstrap/97983, c++/80780, c++/90629, c++/93093, c++/97187, diff --git a/gcc11-c++tools.patch b/gcc11-c++tools.patch new file mode 100644 index 0000000..563b404 --- /dev/null +++ b/gcc11-c++tools.patch @@ -0,0 +1,86 @@ +2020-12-17 Jakub Jelinek + + * configure.ac: Add GCC_BASE_VER. + * Makefile.in (version): Remove variable. + (gcc_version): New variable. + (libexecsubdir): Use $(gcc_version) instead of $(version). + * configure: Regenerated. + +--- c++tools/configure.ac.jj 2020-12-16 23:38:34.091923526 +0100 ++++ c++tools/configure.ac 2020-12-17 00:02:48.221661922 +0100 +@@ -206,6 +206,9 @@ if test $ac_cv_inet_ntop = yes; then + [Define if inet_ntop provided.]) + fi + ++# Determine what GCC version number to use in filesystem paths. ++GCC_BASE_VER ++ + AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_FILES([Makefile]) + +--- c++tools/Makefile.in.jj 2020-12-16 23:38:34.091923526 +0100 ++++ c++tools/Makefile.in 2020-12-17 00:01:54.419263424 +0100 +@@ -20,8 +20,8 @@ prefix := @prefix@ + bindir := @bindir@ + libexecdir := @libexecdir@ + target_noncanonical := @target_noncanonical@ +-version := $(shell cat $(srcdir)/../gcc/BASE-VER) +-libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(version) ++gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) ++libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) + INSTALL := @INSTALL@ + AUTOCONF := @AUTOCONF@ + AUTOHEADER := @AUTOHEADER@ +--- c++tools/configure.jj 2020-12-16 23:38:34.091923526 +0100 ++++ c++tools/configure 2020-12-17 00:02:53.849599006 +0100 +@@ -585,6 +585,7 @@ ac_unique_file="c++tools" + ac_unique_file="server.cc" + ac_subst_vars='LTLIBOBJS + LIBOBJS ++get_gcc_base_ver + ac_ct_CC + CFLAGS + CC +@@ -658,6 +659,7 @@ ac_user_opts=' + enable_option_checking + enable_c___tools + enable_maintainer_mode ++with_gcc_major_version_only + ' + ac_precious_vars='build_alias + host_alias +@@ -1287,6 +1289,12 @@ Optional Features: + enable maintainer mode. Add rules to rebuild + configurey bits + ++Optional Packages: ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --with-gcc-major-version-only ++ use only GCC major number in filesystem paths ++ + Some influential environment variables: + CXX C++ compiler command + CXXFLAGS C++ compiler flags +@@ -3557,6 +3565,21 @@ $as_echo "#define HAVE_INET_NTOP 1" >>co + + fi + ++# Determine what GCC version number to use in filesystem paths. ++ ++ get_gcc_base_ver="cat" ++ ++# Check whether --with-gcc-major-version-only was given. ++if test "${with_gcc_major_version_only+set}" = set; then : ++ withval=$with_gcc_major_version_only; if test x$with_gcc_major_version_only = xyes ; then ++ get_gcc_base_ver="sed -e 's/^\([0-9]*\).*/\1/'" ++ fi ++ ++fi ++ ++ ++ ++ + ac_config_headers="$ac_config_headers config.h" + + ac_config_files="$ac_config_files Makefile" diff --git a/gcc11-pr98282.patch b/gcc11-pr98282.patch new file mode 100644 index 0000000..4187c5f --- /dev/null +++ b/gcc11-pr98282.patch @@ -0,0 +1,118 @@ +2020-12-15 Jakub Jelinek + + PR tree-optimization/98282 + * tree-ssa-pre.c (compute_avail): Don't try to adjust alias set + if different when ref1->opcode is not MEM_REF or TARGET_MEM_REF. + + * g++.dg/opt/pr98282.C: New test. + +--- gcc/tree-ssa-pre.c.jj 2020-11-30 10:48:31.000000000 +0100 ++++ gcc/tree-ssa-pre.c 2020-12-15 10:51:51.061206572 +0100 +@@ -4176,13 +4176,17 @@ compute_avail (void) + && ref2->opcode != MEM_REF + && ref2 != &operands[0]) + --ref2; +- if ((ref1->opcode == TARGET_MEM_REF +- || ref1->opcode == MEM_REF) +- && (TYPE_ALIGN (ref1->type) +- > TYPE_ALIGN (ref2->type))) +- ref1->type +- = build_aligned_type (ref1->type, +- TYPE_ALIGN (ref2->type)); ++ if (ref1->opcode == TARGET_MEM_REF ++ || ref1->opcode == MEM_REF) ++ { ++ if (TYPE_ALIGN (ref1->type) ++ > TYPE_ALIGN (ref2->type)) ++ ref1->type ++ = build_aligned_type (ref1->type, ++ TYPE_ALIGN (ref2->type)); ++ } ++ else ++ set = ref->set; + /* TBAA behavior is an obvious part so make sure + that the hashtable one covers this as well + by adjusting the ref alias set and its base. */ +--- gcc/testsuite/g++.dg/opt/pr98282.C.jj 2020-12-15 12:26:25.868415230 +0100 ++++ gcc/testsuite/g++.dg/opt/pr98282.C 2020-12-15 12:28:00.346353067 +0100 +@@ -0,0 +1,80 @@ ++// PR tree-optimization/98282 ++// { dg-do compile { target c++11 } } ++// { dg-options "-O2" } ++ ++template struct g; ++template struct g { typedef b c; }; ++template typename g::c &&d(b &&e) { ++ return static_cast::c &&>(e); ++} ++void *operator new(__SIZE_TYPE__, void *f) { return f; } ++struct h; ++struct k { ++ using i = h *; ++}; ++struct D { ++ k::i j; ++}; ++struct p : D { ++ p(p &&) : D() {} ++}; ++struct r { ++ using l = int; ++ r(r &&) : ad() {} ++ l *ad; ++}; ++struct s { ++ static s m(); ++}; ++struct t { ++ template void operator=(ah); ++}; ++struct I { ++ template void q(o ai) { ++ *ai = aj(); ++ s::m(); ++ } ++ h aj(); ++}; ++template class as; ++struct J { ++ int a; ++ char av; ++}; ++template struct aw : J { ++ void ax(...) {} ++}; ++template ++struct aw, an, n...> : aw, n...> { ++ using az = as; ++ using ba = aw; ++ char bb; ++ an &bc() { return *reinterpret_cast(this); } ++ void ax(az *bd) { ++ if (bb) ++ new (bd) an(d(bc())); ++ ba::ax(bd); ++ } ++}; ++template struct as : aw, n...> { ++ as(); ++ as(as &&be) { be.ax(this); } ++ void operator=(as be) { be.ax(this); } ++}; ++struct h { ++ as bg; ++}; ++using bh = t; ++struct u { ++ bh bj; ++}; ++I bk(); ++template void bl() { ++ h a; ++ bk().q(&a); ++} ++template void bn(int) { ++ u b; ++ b.bj = bl; ++} ++void bp() { bn(0); } diff --git a/gcc11-pr98338-workaround.patch b/gcc11-pr98338-workaround.patch new file mode 100644 index 0000000..0c8e248 --- /dev/null +++ b/gcc11-pr98338-workaround.patch @@ -0,0 +1,17 @@ +2020-12-17 Jakub Jelinek + + PR bootstrap/98338 + * range-op.cc (operator_plus::op2_range): Tail-call op1_range + to work-around ICF profile merging ICE during profiledbootstrap. + +--- gcc/range-op.cc.jj 2020-12-17 16:06:39.789526868 +0100 ++++ gcc/range-op.cc 2020-12-17 16:19:18.127240700 +0100 +@@ -950,7 +950,7 @@ operator_plus::op2_range (irange &r, tre + const irange &lhs, + const irange &op1) const + { +- return range_op_handler (MINUS_EXPR, type)->fold_range (r, type, lhs, op1); ++ return op1_range (r, type, lhs, op1); + } + + diff --git a/sources b/sources index d4715ed..4697e55 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (gcc-11.0.0-20201204.tar.xz) = 809ca1644f7471187dec0f080d70fcf3a778be88d550d3088988331165fa3ebaafb011f07973523d0b5b83e3cd0f7fd5bc10bc80944f035803f1b21e79af7a31 +SHA512 (gcc-11.0.0-20201216.tar.xz) = 5624f905eafa693434ca16df9df9b3d7dff6d01d335fb690bee124d5f62cec6f2273a4b13cbe85eac33b00d2e556bfeb246444558c4a33747629529a2bd560ad SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7