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