From e49146b140ebf77f2b70d82725781f68e3fee061 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 19 Dec 2022 21:13:05 +0100 Subject: [PATCH 01/14] GCC 13 test. --- .gitignore | 1 + gcc.spec | 810 +++++++----------- gcc12-pr107468.patch | 124 --- ...y.patch => gcc13-Wno-format-security.patch | 8 +- ...os.patch => gcc13-d-shared-libphobos.patch | 0 ...tch => gcc13-fortran-fdec-duplicates.patch | 0 ...=> gcc13-fortran-fdec-non-logical-if.patch | 0 ... => gcc13-fortran-fdec-override-kind.patch | 0 ...=> gcc13-fortran-flogical-as-integer.patch | 0 gcc12-hack.patch => gcc13-hack.patch | 0 gcc12-isl-dl.patch => gcc13-isl-dl.patch | 6 +- gcc12-isl-dl2.patch => gcc13-isl-dl2.patch | 0 ...atch => gcc13-libgomp-omp_h-multilib.patch | 0 ...+-docs.patch => gcc13-libstdc++-docs.patch | 0 gcc13-libstdc++-test.patch | 60 ++ ...path.patch => gcc13-libtool-no-rpath.patch | 0 ...-needed.patch => gcc13-no-add-needed.patch | 0 ...2-rh1574936.patch => gcc13-rh1574936.patch | 0 ...atch => gcc13-sparc-config-detection.patch | 10 +- sources | 2 +- 20 files changed, 367 insertions(+), 654 deletions(-) delete mode 100644 gcc12-pr107468.patch rename gcc12-Wno-format-security.patch => gcc13-Wno-format-security.patch (90%) rename gcc12-d-shared-libphobos.patch => gcc13-d-shared-libphobos.patch (100%) rename gcc12-fortran-fdec-duplicates.patch => gcc13-fortran-fdec-duplicates.patch (100%) rename gcc12-fortran-fdec-non-logical-if.patch => gcc13-fortran-fdec-non-logical-if.patch (100%) rename gcc12-fortran-fdec-override-kind.patch => gcc13-fortran-fdec-override-kind.patch (100%) rename gcc12-fortran-flogical-as-integer.patch => gcc13-fortran-flogical-as-integer.patch (100%) rename gcc12-hack.patch => gcc13-hack.patch (100%) rename gcc12-isl-dl.patch => gcc13-isl-dl.patch (99%) rename gcc12-isl-dl2.patch => gcc13-isl-dl2.patch (100%) rename gcc12-libgomp-omp_h-multilib.patch => gcc13-libgomp-omp_h-multilib.patch (100%) rename gcc12-libstdc++-docs.patch => gcc13-libstdc++-docs.patch (100%) create mode 100644 gcc13-libstdc++-test.patch rename gcc12-libtool-no-rpath.patch => gcc13-libtool-no-rpath.patch (100%) rename gcc12-no-add-needed.patch => gcc13-no-add-needed.patch (100%) rename gcc12-rh1574936.patch => gcc13-rh1574936.patch (100%) rename gcc12-sparc-config-detection.patch => gcc13-sparc-config-detection.patch (77%) diff --git a/.gitignore b/.gitignore index a02dee0..4fa0d77 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,4 @@ /newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz /nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz /gcc-12.2.1-20221121.tar.xz +/gcc-13.0.0-20221219.tar.xz diff --git a/gcc.spec b/gcc.spec index 4877961..2b09e6b 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,10 +1,10 @@ -%global DATE 20221121 -%global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d -%global gcc_version 12.2.1 -%global gcc_major 12 +%global DATE 20221219 +%global gitrev fb5b1c22d92837c41df870c410ed9e7c133df5da +%global gcc_version 13.0.0 +%global gcc_major 13 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 4 +%global gcc_release 0 %global nvptx_tools_gitrev 472b6e78b3ba918d727698f79911360b7c808247 %global newlib_cygwin_gitrev a8526cb52bedabd4d6ba4b227a5185627f871aa1 %global _unpackaged_files_terminate_build 0 @@ -34,6 +34,7 @@ %global build_objc 0 %global build_go 0 %global build_d 0 +%global build_m2 0 %else %ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64 riscv64 %global build_ada 1 @@ -51,6 +52,11 @@ %else %global build_d 0 %endif +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 +%global build_m2 1 +%else +%global build_m2 0 +%endif %endif %ifarch %{ix86} x86_64 ia64 ppc64le %global build_libquadmath 1 @@ -62,6 +68,11 @@ %else %global build_libasan 0 %endif +%ifarch x86_64 aarch64 +%global build_libhwasan 1 +%else +%global build_libhwasan 0 +%endif %ifarch x86_64 ppc64 ppc64le aarch64 s390x %global build_libtsan 1 %else @@ -125,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}%{?dist} +Release: %{gcc_release}.2%{?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 @@ -264,23 +275,23 @@ Provides: bundled(libbacktrace) Provides: bundled(libffi) Provides: gcc(major) = %{gcc_major} -Patch0: gcc12-hack.patch -Patch2: gcc12-sparc-config-detection.patch -Patch3: gcc12-libgomp-omp_h-multilib.patch -Patch4: gcc12-libtool-no-rpath.patch -Patch5: gcc12-isl-dl.patch -Patch6: gcc12-isl-dl2.patch -Patch7: gcc12-libstdc++-docs.patch -Patch8: gcc12-no-add-needed.patch -Patch9: gcc12-Wno-format-security.patch -Patch10: gcc12-rh1574936.patch -Patch11: gcc12-d-shared-libphobos.patch -Patch12: gcc12-pr107468.patch +Patch0: gcc13-hack.patch +Patch2: gcc13-sparc-config-detection.patch +Patch3: gcc13-libgomp-omp_h-multilib.patch +Patch4: gcc13-libtool-no-rpath.patch +Patch5: gcc13-isl-dl.patch +Patch6: gcc13-isl-dl2.patch +Patch7: gcc13-libstdc++-docs.patch +Patch8: gcc13-no-add-needed.patch +Patch9: gcc13-Wno-format-security.patch +Patch10: gcc13-rh1574936.patch +Patch11: gcc13-d-shared-libphobos.patch +Patch12: gcc13-libstdc++-test.patch -Patch100: gcc12-fortran-fdec-duplicates.patch -Patch101: gcc12-fortran-flogical-as-integer.patch -Patch102: gcc12-fortran-fdec-override-kind.patch -Patch103: gcc12-fortran-fdec-non-logical-if.patch +Patch100: gcc13-fortran-fdec-duplicates.patch +Patch101: gcc13-fortran-flogical-as-integer.patch +Patch102: gcc13-fortran-fdec-override-kind.patch +Patch103: gcc13-fortran-fdec-non-logical-if.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -302,7 +313,7 @@ Patch103: gcc12-fortran-fdec-non-logical-if.patch %if %{build_go} # Avoid stripping these libraries and binaries. %global __os_install_post \ -chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \ +chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.22.* \ chmod 644 %{buildroot}%{_prefix}/bin/go.gcc \ chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \ @@ -310,7 +321,7 @@ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet \ %__os_install_post \ -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \ +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.22.* \ chmod 755 %{buildroot}%{_prefix}/bin/go.gcc \ chmod 755 %{buildroot}%{_prefix}/bin/gofmt.gcc \ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \ @@ -321,11 +332,11 @@ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %endif %description -The gcc package contains the GNU Compiler Collection version 12. +The gcc package contains the GNU Compiler Collection version 13. You'll need this package in order to compile C code. %package -n libgcc -Summary: GCC version 12 shared support library +Summary: GCC version 13 shared support library Autoreq: false %if !%{build_ada} Obsoletes: libgnat < %{version}-%{release} @@ -489,6 +500,34 @@ Requires: gcc-gdc = %{version}-%{release} %description -n libgphobos-static This package contains static D libraries. +%package gm2 +Summary: Modula-2 support +Requires: gcc = %{version}-%{release} +Requires: libgm2 = %{version}-%{release} +Provides: gcc-m2 = %{version}-%{release} +Provides: gm2 = %{version}-%{release} +Autoreq: true + +%description gm2 +The gcc-gm2 package provides support for compiling Modula-2 +programs with the GNU Compiler Collection. + +%package -n libgm2 +Summary: Modula-2 runtime +Autoreq: true + +%description -n libgm2 +This package contains Modula-2 shared libraries which are needed to run +Modula-2 dynamically linked programs. + +%package -n libgm2-static +Summary: Static Modula-2 libraries +Requires: libgm2 = %{version}-%{release} +Requires: gcc-gm2 = %{version}-%{release} + +%description -n libgm2-static +This package contains static Modula-2 libraries. + %package -n libgomp Summary: GCC OpenMP v4.5 shared support library @@ -607,6 +646,21 @@ Requires: libasan = %{version}-%{release} %description -n libasan-static This package contains Address Sanitizer static runtime library. +%package -n libhwasan +Summary: The Hardware-assisted Address Sanitizer runtime library + +%description -n libhwasan +This package contains the Hardware-assisted Address Sanitizer library +which is used for -fsanitize=hwaddress instrumented programs. + +%package -n libhwasan-static +Summary: The Hardware-assisted Address Sanitizer static library +Requires: libhwasan = %{version}-%{release} + +%description -n libhwasan-static +This package contains Hardware-assisted Address Sanitizer static runtime +library. + %package -n libtsan Summary: The Thread Sanitizer runtime library @@ -803,7 +857,7 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr107468~ +%patch12 -p0 -b .libstdc++-test~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -923,7 +977,7 @@ ISL_FLAG_PIC=-fPIC ISL_FLAG_PIC=-fpic %endif cd isl-build -sed -i 's|libisl\([^-]\)|libgcc12privateisl\1|g' \ +sed -i 's|libisl\([^-]\)|libgcc13privateisl\1|g' \ ../../isl-%{isl_version}/Makefile.{am,in} ../../isl-%{isl_version}/configure \ CC=/usr/bin/gcc CXX=/usr/bin/g++ \ @@ -931,8 +985,8 @@ sed -i 's|libisl\([^-]\)|libgcc12privateisl\1|g' \ make %{?_smp_mflags} make install cd ../isl-install/lib -rm libgcc12privateisl.so{,.23} -mv libgcc12privateisl.so.23.1.0 libisl.so.23 +rm libgcc13privateisl.so{,.23} +mv libgcc13privateisl.so.23.1.0 libisl.so.23 ln -sf libisl.so.23 libisl.so cd ../.. %endif @@ -953,6 +1007,9 @@ enablelgo=,go %if %{build_d} enableld=,d %endif +%if %{build_m2} +enablelm2=,m2 +%endif CONFIGURE_OPTS="\ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=http://bugzilla.redhat.com/bugzilla \ @@ -1095,7 +1152,7 @@ CONFIGURE_OPTS="\ %ifnarch sparc sparcv9 ppc --build=%{gcc_target_platform} \ %endif -%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9 +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 9 %ifnarch %{arm} --with-build-config=bootstrap-lto --enable-link-serialization=1 \ %endif @@ -1107,7 +1164,7 @@ CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure --enable-bootstrap \ - --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ + --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld}${enablelm2},lto \ $CONFIGURE_OPTS %ifarch sparc sparcv9 sparc64 @@ -1163,7 +1220,7 @@ cd ../.. # Copy various doc files here and there cd .. -mkdir -p rpm.doc/gfortran rpm.doc/objc rpm.doc/gdc rpm.doc/libphobos +mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2} mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer} @@ -1191,6 +1248,14 @@ done) done cp -a src/LICENSE*.txt libdruntime/LICENSE.txt ../rpm.doc/libphobos/) %endif +%if %{build_m2} +(cd gcc/m2; for i in ChangeLog*; do + cp -p $i ../../rpm.doc/gm2/$i.gm2 +done) +(cd libgm2; for i in ChangeLog*; do + cp -p $i ../rpm.doc/libgm2/$i.libgm2 +done) +%endif %if %{build_libquadmath} (cd libquadmath; for i in ChangeLog* COPYING.LIB; do cp -p $i ../rpm.doc/libquadmath/$i.libquadmath @@ -1488,14 +1553,19 @@ ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../libgfortran.so.5.* libgfortran.so ln -sf ../../../libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../libgo.so.21.* libgo.so +ln -sf ../../../libgo.so.22.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../libquadmath.so.0.* libquadmath.so %endif %if %{build_d} -ln -sf ../../../libgdruntime.so.3.* libgdruntime.so -ln -sf ../../../libgphobos.so.3.* libgphobos.so +ln -sf ../../../libgdruntime.so.4.* libgdruntime.so +ln -sf ../../../libgphobos.so.4.* libgphobos.so +%endif +%if %{build_m2} +for i in cor iso log min pim; do + ln -sf ../../../libm2$i.so.17.* libm2$i.so +done %endif %if %{build_libitm} ln -sf ../../../libitm.so.1.* libitm.so @@ -1518,14 +1588,19 @@ ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../../%{_lib}/libgo.so.21.* libgo.so +ln -sf ../../../../%{_lib}/libgo.so.22.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so %endif %if %{build_d} -ln -sf ../../../../%{_lib}/libgdruntime.so.3.* libgdruntime.so -ln -sf ../../../../%{_lib}/libgphobos.so.3.* libgphobos.so +ln -sf ../../../../%{_lib}/libgdruntime.so.4.* libgdruntime.so +ln -sf ../../../../%{_lib}/libgphobos.so.4.* libgphobos.so +%endif +%if %{build_m2} +for i in cor iso log min pim; do + ln -sf ../../../../%{_lib}/libm2$i.so.17.* libm2$i.so +done %endif %if %{build_libitm} ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so @@ -1545,6 +1620,11 @@ rm -f libtsan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.2.* | sed 's,^.*libt,libt,'`' )' > libtsan.so mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o %endif +%if %{build_libhwasan} +rm -f libhwasan.so +echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libhwasan.so.0.* | sed 's,^.*libh,libh,'`' )' > libhwasan.so +mv ../../../../%{_lib}/libhwasan_preinit.o libhwasan_preinit.o +%endif %if %{build_liblsan} rm -f liblsan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so @@ -1553,6 +1633,7 @@ mv ../../../../%{_lib}/liblsan_preinit.o liblsan_preinit.o fi mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++exp.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++_libbacktrace.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/ @@ -1567,6 +1648,14 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgdruntime.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgphobos.*a $FULLLPATH/ %endif +%if %{build_m2} +for i in cor iso log min pim; do + mv -f %{buildroot}%{_prefix}/%{_lib}/libm2$i.*a $FULLLPATH/ + rm -f m2/m2$i/*.{a,la} + ln -sf ../../libm2$i.so m2/m2$i/ + ln -sf ../../libm2$i.a m2/m2$i/ +done +%endif %if %{build_libitm} mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/ %endif @@ -1582,6 +1671,9 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/ %if %{build_libtsan} mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/ %endif +%if %{build_libhwasan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan.*a $FULLPATH/ +%endif %if %{build_liblsan} mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/ %endif @@ -1639,8 +1731,8 @@ ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/li ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so %if %{build_go} rm -f libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.22.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.22.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1649,10 +1741,20 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libquadmath.so.0.* | sed ' %endif %if %{build_d} rm -f libgdruntime.so libgphobos.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.4.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.4.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.4.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.4.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so +%endif +%if %{build_m2} +for i in cor iso log min pim; do + rm -f libm2$i.so + echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so + echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so + rm -f 64/m2/m2$i/*.{a,la} + ln -sf ../../libm2$i.so 64/m2/m2$i/ + ln -sf ../../libm2$i.a 64/m2/m2$i/ +done %endif %if %{build_libitm} rm -f libitm.so @@ -1685,6 +1787,8 @@ ln -sf lib32/libstdc++.a libstdc++.a ln -sf ../lib64/libstdc++.a 64/libstdc++.a ln -sf lib32/libstdc++fs.a libstdc++fs.a ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a +ln -sf lib32/libstdc++exp.a libstdc++exp.a +ln -sf ../lib64/libstdc++exp.a 64/libstdc++exp.a ln -sf lib32/libstdc++_libbacktrace.a libstdc++_libbacktrace.a ln -sf ../lib64/libstdc++_libbacktrace.a 64/libstdc++_libbacktrace.a ln -sf lib32/libsupc++.a libsupc++.a @@ -1699,6 +1803,12 @@ ln -sf ../lib64/libgdruntime.a 64/libgdruntime.a ln -sf lib32/libgphobos.a libgphobos.a ln -sf ../lib64/libgphobos.a 64/libgphobos.a %endif +%if %{build_m2} +for i in cor iso log min pim; do + ln -sf lib32/libm2$i.a libm2$i.a + ln -sf ../lib64/libm2$i.a 64/libm2$i.a +done +%endif %if %{build_libitm} ln -sf lib32/libitm.a libitm.a ln -sf ../lib64/libitm.a 64/libitm.a @@ -1740,8 +1850,8 @@ ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/l ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so %if %{build_go} rm -f libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.22.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.22.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1750,10 +1860,20 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed ' %endif %if %{build_d} rm -f libgdruntime.so libgphobos.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.4.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.4.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.4.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.4.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so +%endif +%if %{build_m2} +for i in cor iso log min pim; do + rm -f libm2$i.so + echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so + echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so + rm -f 32/m2/m2$i/*.{a,la} + ln -sf ../../libm2$i.so 32/m2/m2$i/ + ln -sf ../../libm2$i.a 32/m2/m2$i/ +done %endif %if %{build_libitm} rm -f libitm.so @@ -1788,6 +1908,8 @@ ln -sf ../lib32/libstdc++.a 32/libstdc++.a ln -sf lib64/libstdc++.a libstdc++.a ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a ln -sf lib64/libstdc++fs.a libstdc++fs.a +ln -sf ../lib32/libstdc++exp.a 32/libstdc++exp.a +ln -sf lib64/libstdc++exp.a libstdc++exp.a ln -sf ../lib32/libstdc++_libbacktrace.a 32/libstdc++_libbacktrace.a ln -sf lib64/libstdc++_libbacktrace.a libstdc++_libbacktrace.a ln -sf ../lib32/libsupc++.a 32/libsupc++.a @@ -1802,6 +1924,12 @@ ln -sf lib64/libgdruntime.a libgdruntime.a ln -sf ../lib32/libgphobos.a 32/libgphobos.a ln -sf lib64/libgphobos.a libgphobos.a %endif +%if %{build_m2} +for i in cor iso log min pim; do + ln -sf ../lib32/libm2$i.a 32/libm2$i.a + ln -sf lib64/libm2$i.a libm2$i.a +done +%endif %if %{build_libitm} ln -sf ../lib32/libitm.a 32/libitm.a ln -sf lib64/libitm.a libitm.a @@ -1837,6 +1965,7 @@ ln -sf lib64/adalib adalib ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfortran.a 32/libgfortran.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++exp.a 32/libstdc++exp.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++_libbacktrace.a 32/libstdc++_libbacktrace.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a %if %{build_libquadmath} @@ -1846,6 +1975,11 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libqua ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgdruntime.a 32/libgdruntime.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgphobos.a 32/libgphobos.a %endif +%if %{build_m2} +for i in cor iso log min pim; do + ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libm2$i.a 32/libm2$i.a +done +%endif %if %{build_libitm} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a %endif @@ -1884,8 +2018,9 @@ for d in . $FULLLSUBDIR; do -o -name libgolibbegin.a -o -name libgomp.a \ -o -name libitm.a -o -name liblsan.a \ -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \ - -o -name libquadmath.a -o -name libstdc++.a \ - -o -name libstdc++fs.a -o -name libstdc++_libbacktrace.a -o -name libsupc++.a \ + -o -name libm2\*.a -o -name libquadmath.a -o -name libstdc++.a \ + -o -name libstdc++fs.a -o -name libstdc++exp.a \ + -o -name libstdc++_libbacktrace.a -o -name libsupc++.a \ -o -name libtsan.a -o -name libubsan.a \) -a -type f`; do cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/ done @@ -1895,7 +2030,7 @@ done # Strip debug info from Fortran/ObjC/Java static libraries strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ - -o -name libgdruntime.a -o -name libgphobos.a \ + -o -name libgdruntime.a -o -name libgphobos.a -o -name libm2\*.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \ @@ -1908,8 +2043,13 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %endif %if %{build_d} -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.3.* -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.3.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.4.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.4.* +%endif +%if %{build_m2} +for i in cor iso log min pim; do + chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.17.* +done %endif %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* @@ -1926,12 +2066,15 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* %if %{build_libtsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* %endif +%if %{build_libhwasan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* +%endif %if %{build_liblsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %if %{build_go} # Avoid stripping these libraries and binaries. -chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* +chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.22.* chmod 644 %{buildroot}%{_prefix}/bin/go.gcc chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo @@ -1948,8 +2091,6 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so* %endif -mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h -mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h for h in `find $FULLPATH/include -name \*.h`; do if grep -q 'It has been auto-edited by fixincludes from' $h; then rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` @@ -2002,6 +2143,7 @@ rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ar || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-nm || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gdc || : +rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gm2 || : %ifarch %{multilib_64_archs} # Remove libraries for the other arch on multilib arches @@ -2141,6 +2283,8 @@ end %ldconfig_scriptlets -n libgphobos +%ldconfig_scriptlets -n libgm2 + %ldconfig_scriptlets -n libgnat %ldconfig_scriptlets -n libgomp @@ -2322,6 +2466,13 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxifmaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint8intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxneconvertintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cmpccxaddintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxfp16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/raointintrin.h %endif %ifarch ia64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h @@ -2497,6 +2648,10 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o %endif +%if %{build_libhwasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan_preinit.o +%endif %if %{build_liblsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o @@ -2540,6 +2695,7 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_libbacktrace.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a %endif @@ -2548,6 +2704,7 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_libbacktrace.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a %endif @@ -2557,6 +2714,7 @@ end %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_libbacktrace.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif @@ -2590,15 +2748,18 @@ end %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_libbacktrace.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_libbacktrace.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_libbacktrace.a %endif %doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* @@ -2770,8 +2931,8 @@ end %doc rpm.doc/gdc/* %files -n libgphobos -%{_prefix}/%{_lib}/libgdruntime.so.3* -%{_prefix}/%{_lib}/libgphobos.so.3* +%{_prefix}/%{_lib}/libgdruntime.so.4* +%{_prefix}/%{_lib}/libgphobos.so.4* %doc rpm.doc/libphobos/* %files -n libgphobos-static @@ -2794,6 +2955,59 @@ end %endif %endif +%if %{build_m2} +%files gm2 +%{_prefix}/bin/gm2 +%{_mandir}/man1/gm2.1* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/m2 +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1gm2 +%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.a +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.so +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/m2 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libm2*.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libm2*.so +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/m2 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libm2*.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libm2*.so +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/m2rte.so +%doc rpm.doc/gm2/* + +%files -n libgm2 +%{_prefix}/%{_lib}/libm2*.so.17* +%doc rpm.doc/libgm2/* + +%files -n libgm2-static +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libm2*.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libm2*.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.a +%endif +%endif + %if %{build_ada} %files gnat %{_prefix}/bin/gnat @@ -3036,6 +3250,20 @@ end %license libsanitizer/LICENSE.TXT %endif +%if %{build_libhwasan} +%files -n libhwasan +%{_prefix}/%{_lib}/libhwasan.so.0* + +%files -n libhwasan-static +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* +%{!?_licensedir:%global license %%doc} +%license libsanitizer/LICENSE.TXT +%endif + %if %{build_liblsan} %files -n liblsan %{_prefix}/%{_lib}/liblsan.so.0* @@ -3096,7 +3324,7 @@ end %doc rpm.doc/go/* %files -n libgo -%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.21* +%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.22* %doc rpm.doc/libgo/* %files -n libgo-devel @@ -3215,461 +3443,5 @@ end %endif %changelog -* Mon Nov 21 2022 Jakub Jelinek 12.2.1-4 -- update from releases/gcc-12 branch - - PRs c++/104066, c++/105774, c++/106829, c++/107358, c/41041, c/106981, - c/107001, libstdc++/95048, libstdc++/103295, target/104688, - target/107183, target/107304, target/107404, target/107713, - target/107748, tree-optimization/107121, tree-optimization/107206 -- fix up std::from_chars behavior in rounding modes other than FE_TONEAREST - (PR libstdc++/107468) - -* Thu Nov 3 2022 Jakub Jelinek 12.2.1-3 -- update from releases/gcc-12 branch - - PRs c++/93259, c++/105774, c++/106759, c++/106829, c++/106893, c++/106925, - c++/107358, c/106947, c/106981, c/107001, fortran/82868, - fortran/100029, fortran/100040, fortran/100097, fortran/100098, - fortran/100103, fortran/100132, fortran/100136, fortran/100245, - fortran/103413, fortran/103694, fortran/105012, fortran/105633, - fortran/106566, fortran/106579, fortran/106817, fortran/106857, - fortran/106985, fortran/106986, fortran/107054, libstdc++/105678, - libstdc++/106320, libstdc++/106589, libstdc++/106607, - libstdc++/106695, lto/107418, middle-end/106548, middle-end/106982, - other/106782, rtl-optimization/106187, target/96072, target/99184, - target/99685, target/100645, target/101322, target/103353, - target/104482, target/105421, target/105463, target/105485, - target/106017, target/106355, target/106459, target/106491, - target/106524, target/106704, target/106714, target/106721, - target/107061, target/107064, target/107248, target/107364, - tree-optimization/102892, tree-optimization/105937, - tree-optimization/106322, tree-optimization/106809, - tree-optimization/106841, tree-optimization/106860, - tree-optimization/106892, tree-optimization/106922, - tree-optimization/106934, tree-optimization/107107, - tree-optimization/107121, tree-optimization/107160, - tree-optimization/107212, tree-optimization/107254, - tree-optimization/107323 - -* Wed Sep 7 2022 Kalev Lember 12.2.1-2 -- enable GDC on aarch64 - -* Fri Aug 19 2022 Jakub Jelinek 12.2.1-1 -- update from releases/gcc-12 branch - - GCC 12.2 release - - PRs c++/67048, c++/106369, c/106016, d/106623, d/106638, lto/106334, - lto/106540, middle-end/106492, tree-optimization/106513 -- fix an if-conversion wrong-code bug (PR rtl-optimization/106590) -- implement C++23 P2327R1 - de-deprecating volatile compound operations - as - a DR - -* Wed Aug 10 2022 Jakub Jelinek 12.1.1-4 -- update from releases/gcc-12 branch - - PRs analyzer/105285, analyzer/106204, analyzer/106225, c++/53164, - c++/96363, c++/100374, c++/105541, c++/105626, c++/105634, c++/105637, - c++/105758, c++/105842, c++/105848, c++/105912, c++/106024, - c++/106102, c++/106230, c++/106311, c++/106361, d/106139, d/106555, - d/106563, debug/106261, fortran/101330, fortran/103137, - fortran/103138, fortran/103504, fortran/103693, fortran/104313, - fortran/105243, fortran/105691, fortran/105813, fortran/105954, - fortran/106121, libfortran/106079, libstdc++/88881, libstdc++/100823, - libstdc++/104443, libstdc++/105844, libstdc++/105880, - libstdc++/105957, libstdc++/105995, libstdc++/106162, - libstdc++/106248, lto/106129, middle-end/105965, middle-end/106027, - middle-end/106144, middle-end/106331, middle-end/106449, - preprocessor/97498, rtl-optimization/105041, rtl-optimization/106032, - target/103722, target/105459, target/105930, target/105991, - target/106091, target/106097, target/106122, testsuite/106345, - tree-optimization/105665, tree-optimization/105860, - tree-optimization/105946, tree-optimization/105969, - tree-optimization/105971, tree-optimization/106063, - tree-optimization/106087, tree-optimization/106112, - tree-optimization/106114, tree-optimization/106131, - tree-optimization/106189 - -* Thu Jun 30 2022 Jakub Jelinek 12.1.1-3 -- fix up libtsan on s390x - -* Tue Jun 28 2022 Jakub Jelinek 12.1.1-2 -- update from releases/gcc-12 branch - - PRs c++/49387, c++/102307, c++/102651, c++/104470, c++/105491, c++/105589, - c++/105623, c++/105652, c++/105655, c++/105725, c++/105734, - c++/105756, c++/105761, c++/105779, c++/105795, c++/105852, - c++/105871, c++/105885, c++/105908, c++/105925, c++/105931, - c++/105964, c++/106001, c/105635, d/105544, fortran/105230, - gcov-profile/105535, ipa/100413, ipa/105600, ipa/105639, ipa/105739, - libgomp/105745, libgomp/106045, libstdc++/104731, libstdc++/105284, - libstdc++/105671, libstdc++/105681, middle-end/105537, - middle-end/105604, middle-end/105711, middle-end/105951, - middle-end/105998, middle-end/106030, other/105527, - preprocessor/105732, rtl-optimization/105455, rtl-optimization/105559, - rtl-optimization/105577, sanitizer/105714, sanitizer/105729, - target/101891, target/104871, target/105162, target/105209, - target/105292, target/105472, target/105556, target/105599, - target/105854, target/105879, target/105953, target/105960, - target/105970, target/105981, target/106096, tree-optimization/103116, - tree-optimization/105431, tree-optimization/105458, - tree-optimization/105528, tree-optimization/105562, - tree-optimization/105618, tree-optimization/105726, - tree-optimization/105736, tree-optimization/105786, - tree-optimization/105940 -- enable tsan and lsan on s390x (#2101610) -- trim RHEL fortran patches -- fix nvptx build (PRs bootstrap/105551, target/105938) - -* Sat May 7 2022 Jakub Jelinek 12.1.1-1 -- update from releases/gcc-12 branch - - GCC 12.1 release - - PRs c++/105476, libstdc++/103911, libstdc++/105441, libstdc++/105502, - middle-end/105376, middle-end/105461, target/102059, testsuite/105433, - tree-optimization/105394, tree-optimization/105437, - tree-optimization/105484 - -* Thu May 5 2022 Stephen Gallagher 12.0.1-0.18 -- fix annobin plugin conditional to build for ELN - -* Fri Apr 29 2022 Jakub Jelinek 12.0.1-0.17 -- update from trunk and releases/gcc-12 branch - - GCC 12.1-rc1 - - PRs analyzer/105252, analyzer/105264, analyzer/105365, analyzer/105366, - c++/65211, c++/82980, c++/86193, c++/90107, c++/97219, c++/100838, - c++/101442, c++/101698, c++/102629, c++/102804, c++/102987, - c++/103868, c++/104051, c++/104624, c++/104646, c++/104996, - c++/105256, c++/105265, c++/105268, c++/105287, c++/105289, - c++/105297, c++/105301, c++/105304, c++/105321, c++/105322, - c++/105353, c++/105386, c++/105398, c++/105425, c++/105426, - debug/105089, debug/105203, fortran/70673, fortran/78054, - fortran/102043, fortran/103662, fortran/104717, fortran/105242, - fortran/105310, fortran/105379, fortran/105381, gcov-profile/105282, - ipa/103818, ipa/105306, libgomp/105358, libstdc++/93602, - libstdc++/99290, libstdc++/102994, libstdc++/104858, - libstdc++/105269, libstdc++/105324, libstdc++/105375, - libstdc++/105417, lto/105364, lto/105399, middle-end/104492, - rtl-optimization/105231, rtl-optimization/105314, - rtl-optimization/105333, sanitizer/105396, target/89125, - target/103197, target/104676, target/105247, target/105257, - target/105271, target/105331, target/105334, target/105338, - target/105339, target/105349, target/105367, testsuite/105266, - tree-optimization/100810, tree-optimization/103941, - tree-optimization/104010, tree-optimization/105219, - tree-optimization/105254, tree-optimization/105276, - tree-optimization/105312, tree-optimization/105368, - tree-optimization/105374 - -* Wed Apr 13 2022 Jakub Jelinek 12.0.1-0.16 -- update from trunk - - PRs c++/97296, c++/98249, c++/100111, c++/103105, c++/104142, c++/104669, - c++/105223, c++/105233, c++/105245, jit/104071, jit/104072, - jit/104073, jit/104293, middle-end/105253, middle-end/105259, - rtl-optimization/105211, target/95325, target/97348, target/101755, - target/102146, target/103623, target/104144, target/104894, - target/105213, target/105214, target/105234, testsuite/105183, - tree-optimization/104912, tree-optimization/105226, - tree-optimization/105232, tree-optimization/105235, - tree-optimization/105250, tree-optimization/105263 - -* Mon Apr 11 2022 Jakub Jelinek 12.0.1-0.15 -- update from trunk - - PRs analyzer/102208, analyzer/103892, c++/91618, c++/92385, c++/96604, - c++/96645, c++/99479, c++/100370, c++/100608, c++/101051, c++/101677, - c++/101717, c++/101894, c++/103328, c++/103852, c++/104668, - c++/104702, c++/105110, c++/105143, c++/105186, c++/105187, - c++/105191, c/105149, c/105151, d/104740, driver/105096, - fortran/104210, fortran/105138, fortran/105184, ipa/103376, - ipa/104303, ipa/105166, jit/102824, libstdc++/105031, - libstdc++/105128, libstdc++/105146, libstdc++/105153, - libstdc++/105154, middle-end/105140, middle-end/105165, - rtl-optimization/104985, target/101908, target/102024, target/103147, - target/104049, target/104253, target/104409, target/104853, - target/104897, target/104987, target/105002, target/105069, - target/105123, target/105139, target/105144, target/105147, - target/105157, target/105197, testsuite/103196, testsuite/105095, - testsuite/105122, testsuite/105196, tree-optimization/102586, - tree-optimization/103761, tree-optimization/104639, - tree-optimization/104645, tree-optimization/105132, - tree-optimization/105142, tree-optimization/105148, - tree-optimization/105150, tree-optimization/105163, - tree-optimization/105173, tree-optimization/105175, - tree-optimization/105185, tree-optimization/105189, - tree-optimization/105198, tree-optimization/105218 -- build annobin gcc plugin as part of gcc build into gcc-plugin-annobin - subpackage - -* Sun Apr 3 2022 Jakub Jelinek 12.0.1-0.14 -- update from trunk - - revert delayed parse DMI change (PR c++/96645) -- fix up aarch64 make install - -* Fri Apr 1 2022 Jakub Jelinek 12.0.1-0.13 -- update from trunk - - PRs ada/104767, ada/104861, analyzer/95000, analyzer/99771, - analyzer/103533, analyzer/104308, analyzer/104793, analyzer/104863, - analyzer/104943, analyzer/104954, analyzer/104955, analyzer/104979, - analyzer/104997, analyzer/105017, analyzer/105057, analyzer/105074, - analyzer/105087, c++/39751, c++/58646, c++/59426, c++/65396, - c++/71637, c++/84964, c++/87820, c++/92918, c++/93280, c++/95999, - c++/96329, c++/96437, c++/96440, c++/96645, c++/96780, c++/98644, - c++/99445, c++/100474, c++/101030, c++/101515, c++/101767, c++/102045, - c++/102071, c++/102123, c++/102137, c++/102489, c++/102538, - c++/102740, c++/102869, c++/102990, c++/103177, c++/103291, - c++/103299, c++/103337, c++/103455, c++/103460, c++/103769, - c++/103943, c++/103968, c++/104008, c++/104108, c++/104284, - c++/104476, c++/104527, c++/104568, c++/104583, c++/104608, - c++/104620, c++/104622, c++/104623, c++/104641, c++/104752, - c++/104806, c++/104823, c++/104846, c++/104847, c++/104944, - c++/104994, c++/105003, c++/105006, c++/105035, c++/105050, - c++/105061, c++/105064, c++/105067, c++/105092, c/82283, c/84685, - c/98198, c/104711, d/103528, d/104911, d/105004, debug/104564, - debug/104778, fortran/50549, fortran/100892, fortran/103039, - fortran/103560, fortran/103691, fortran/104126, fortran/104570, - fortran/104571, fortran/104811, fortran/104849, fortran/104999, - ipa/102513, ipa/103083, ipa/103171, ipa/104813, jit/63854, - libgcc/86224, libgomp/105042, libstdc++/92546, libstdc++/103407, - libstdc++/104242, libstdc++/104859, libstdc++/104866, - libstdc++/104870, libstdc++/104875, libstdc++/104990, - libstdc++/105021, libstdc++/105027, lto/102426, middle-end/90115, - middle-end/98420, middle-end/99578, middle-end/100680, - middle-end/102330, middle-end/103597, middle-end/104086, - middle-end/104285, middle-end/104436, middle-end/104774, - middle-end/104786, middle-end/104869, middle-end/104885, - middle-end/104892, middle-end/104966, middle-end/104971, - middle-end/104975, middle-end/105032, middle-end/105049, other/65095, - other/102664, other/104899, other/105114, rtl-optimization/103775, - rtl-optimization/104814, rtl-optimization/104961, - rtl-optimization/104989, rtl-optimization/105028, - rtl-optimization/105091, sanitizer/105093, target/86722, target/91229, - target/94680, target/96882, target/99754, target/102125, - target/102215, target/102772, target/102986, target/103074, - target/104004, target/104666, target/104688, target/104714, - target/104762, target/104783, target/104790, target/104815, - target/104818, target/104829, target/104840, target/104842, - target/104857, target/104868, target/104882, target/104890, - target/104898, target/104902, target/104903, target/104910, - target/104916, target/104923, target/104925, target/104946, - target/104952, target/104957, target/104963, target/104967, - target/104974, target/104976, target/104977, target/104978, - target/104982, target/104998, target/105000, target/105011, - target/105052, target/105058, target/105066, target/105068, - testsuite/102841, testsuite/104759, testsuite/105055, - testsuite/105085, tree-optimization/80334, tree-optimization/84201, - tree-optimization/90356, tree-optimization/98335, - tree-optimization/100834, tree-optimization/101895, - tree-optimization/102008, tree-optimization/102586, - tree-optimization/102645, tree-optimization/102943, - tree-optimization/104645, tree-optimization/104755, - tree-optimization/104851, tree-optimization/104880, - tree-optimization/104941, tree-optimization/104942, - tree-optimization/104960, tree-optimization/104970, - tree-optimization/105012, tree-optimization/105053, - tree-optimization/105056, tree-optimization/105070, - tree-optimization/105080, tree-optimization/105094, - tree-optimization/105109 - -* Tue Mar 8 2022 Jakub Jelinek 12.0.1-0.12 -- fix up promoted SUBREG handling (#2045160, PR rtl-optimization/104839) -- fix up check for asm goto (PR rtl-optimization/104777) - -* Tue Mar 8 2022 Jakub Jelinek 12.0.1-0.11 -- update from trunk - - PRs analyzer/101983, fortran/99585, fortran/104430, libstdc++/104807, - middle-end/104381, target/99297, target/104779, target/104794, - target/104797, translation/90148, translation/104552, - tree-optimization/104782, tree-optimization/104825 -- fix build on i686 where gnat1 was hanging (PR target/104838, - PR target/104781) - -* Sun Mar 6 2022 Jakub Jelinek 12.0.1-0.10 -- update from trunk - - PRs analyzer/103521, analyzer/104434, c++/70077, c++/79493, c++/103443, - c++/104618, c++/104667, c++/104682, c/104627, c/104633, d/104659, - d/104736, debug/100541, fortran/84519, fortran/104131, fortran/104573, - fortran/104619, gcov-profile/104677, ipa/104533, ipa/104648, - libstdc++/96526, libstdc++/104602, libstdc++/104748, middle-end/80270, - middle-end/100400, middle-end/102276, middle-end/103836, - middle-end/103984, middle-end/104061, middle-end/104132, - middle-end/104133, middle-end/104529, middle-end/104540, - middle-end/104550, middle-end/104558, middle-end/104679, - middle-end/104721, middle-end/104757, middle-end/104761, - middle-end/104784, rtl-optimization/104154, rtl-optimization/104589, - rtl-optimization/104637, rtl-optimization/104686, target/87496, - target/88134, target/99555, target/100757, target/101325, - target/102429, target/103302, target/104121, target/104208, - target/104489, target/104656, target/104664, target/104674, - target/104681, target/104698, target/104704, target/104724, - target/104726, target/104758, testsuite/100407, testsuite/104687, - testsuite/104725, testsuite/104727, testsuite/104728, - testsuite/104730, testsuite/104732, testsuite/104791, - tree-optimization/91384, tree-optimization/101636, - tree-optimization/103037, tree-optimization/103845, - tree-optimization/103856, tree-optimization/104601, - tree-optimization/104644, tree-optimization/104675, - tree-optimization/104676, tree-optimization/104700, - tree-optimization/104715, tree-optimization/104716 -- fix constraints on s390x conditional trap (PR target/104775) - -* Tue Feb 22 2022 Jakub Jelinek 12.0.1-0.9 -- update from trunk - - PRs analyzer/104524, analyzer/104560, analyzer/104576, c++/85493, - c++/90451, c++/94944, c++/95036, c++/104107, c++/104507, c++/104539, - c++/104565, c/104506, c/104510, c/104531, c/104532, debug/104517, - debug/104557, fortran/77693, fortran/104211, libstdc++/104542, - libstdc++/104559, lto/104617, middle-end/104355, middle-end/104522, - rtl-optimization/104447, rtl-optimization/104498, - rtl-optimization/104544, sanitizer/102656, target/99708, target/99881, - target/100056, target/100874, target/103069, target/104253, - target/104257, target/104335, target/104440, target/104448, - target/104536, target/104581, target/104598, target/104612, - testsuite/104146, tree-optimization/96881, tree-optimization/103771, - tree-optimization/104519, tree-optimization/104526, - tree-optimization/104543, tree-optimization/104551, - tree-optimization/104582, tree-optimization/104604 - -* Mon Feb 14 2022 Jakub Jelinek 12.0.1-0.8 -- update from trunk - - PRs ada/97504, ada/98724, c/104505, fortran/104228, libstdc++/100912, - middle-end/104497, tree-optimization/104511, tree-optimization/104528 - - fix handling of return in arm constexpr ctors and on all arches return in - constexpr dtors (PR c++/104513) - -* Sat Feb 12 2022 Jakub Jelinek 12.0.1-0.7 -- update from trunk - - PRs analyzer/98797, analyzer/101081, analyzer/102052, analyzer/103872, - analyzer/104274, analyzer/104417, analyzer/104452, c++/80951, - c++/96242, c++/96876, c++/102204, c++/103706, c++/103752, c++/104033, - c++/104379, c++/104403, c++/104410, c++/104425, c++/104432, - c++/104472, c/104427, debug/104407, fortran/66193, fortran/104329, - libgomp/104385, libstdc++/104442, middle-end/100775, - middle-end/104402, middle-end/104446, middle-end/104450, - middle-end/104464, middle-end/104467, middle-end/104496, - rtl-optimization/104059, rtl-optimization/104153, - rtl-optimization/104198, rtl-optimization/104400, - rtl-optimization/104459, sanitizer/104449, target/35513, target/79754, - target/97005, target/97040, target/100593, target/102140, - target/103627, target/104117, target/104283, target/104327, - target/104345, target/104364, target/104441, target/104451, - target/104453, target/104456, target/104458, target/104462, - target/104469, target/104474, target/104502, testsuite/104481, - tree-optimization/102832, tree-optimization/104288, - tree-optimization/104373, tree-optimization/104420, - tree-optimization/104445, tree-optimization/104466, - tree-optimization/104479, tree-optimization/104499 - -* Sat Feb 5 2022 Jakub Jelinek 12.0.1-0.6 -- update from trunk - - PRs analyzer/104369, c++/92385, c++/104079, c++/104300, c++/104302, - debug/104337, debug/104366, fortran/104311, fortran/104328, - middle-end/90348, middle-end/104092, middle-end/104260, - rtl-optimization/101885, target/95082, target/100808, target/103686, - target/104219, target/104362, target/104380, tree-optimization/103641, - tree-optimization/104119, tree-optimization/104356, - tree-optimization/104389 - -* Wed Feb 2 2022 Jakub Jelinek 12.0.1-0.5 -- update from trunk - - PRs analyzer/104270, c++/101874, c++/102414, c++/102434, c++/103186, - c++/104291, c++/104294, d/104287, demangler/98886, demangler/99935, - fortran/104331, libstdc++/101831, libstdc++/104301, lto/104333, - middle-end/104232, middle-end/104307, middle-end/95115, - preprocessor/104147, rtl-optimization/101260, target/94372, - target/100428, target/104189, target/104298, target/104323, - tree-optimization/95424, tree-optimization/100499, - tree-optimization/102819, tree-optimization/103169, - tree-optimization/103514, tree-optimization/104279, - tree-optimization/104280, tree-optimization/104281 -- fix a VRP bug with 1-3 bit precision types (PR tree-optimization/104334) - -* Sat Jan 29 2022 Jakub Jelinek 12.0.1-0.4 -- update from trunk - - PRs ada/104258, analyzer/104224, analyzer/104247, bootstrap/67102, - c++/51344, c++/59950, c++/82632, c++/92752, c++/92944, c++/99895, - c++/100030, c++/100198, c++/100282, c++/101532, c++/101988, - c++/103057, c++/103341, c++/103678, c++/104206, c++/104225, - c++/104226, c++/104235, c++/104245, fortran/84784, fortran/103790, - fortran/104128, fortran/104212, fortran/104227, libfortran/104233, - libstdc++/100516, libstdc++/104161, libstdc++/104217, - libstdc++/104259, lto/104237, middle-end/103642, target/103702, - target/104201, target/104213, target/104239, testsuite/70230, - tree-optimization/104196, tree-optimization/104203, - tree-optimization/104263, tree-optimization/104267, web/104254 -- configure with --enable-libstdcxx-backtrace and package - libstdc++_libbacktrace.a - -* Tue Jan 25 2022 Jakub Jelinek 12.0.1-0.3 -- update from trunk - - PRs ada/103538, analyzer/94362, analyzer/103685, analyzer/104062, - analyzer/104089, analyzer/104150, analyzer/104159, bootstrap/104135, - bootstrap/104170, c++/20040, c++/55227, c++/91911, c++/101072, - c++/101405, c++/101715, c++/102300, c++/102338, c++/103631, - c++/103672, c++/103681, c++/104025, c++/104055, c++/104084, - c++/104134, c++/104139, c++/104148, c++/104173, c++/104182, - c++/104197, c/104115, debug/103874, fortran/102621, fortran/103695, - fortran/104127, libgcc/104207, libstdc++/87193, libstdc++/104019, - libstdc++/104032, libstdc++/104099, libstdc++/104101, - libstdc++/104123, libstdc++/104174, middle-end/100786, - middle-end/102860, middle-end/104069, middle-end/104076, - middle-end/104140, other/104176, other/104181, preprocessor/104030, - rtl-optimization/102478, sanitizer/99673, sanitizer/104158, - target/64821, target/94193, target/100784, target/102517, - target/103676, target/103771, target/104090, target/104136, - target/104188, testsuite/102833, testsuite/103763, testsuite/104021, - testsuite/104022, testsuite/104109, tree-optimization/100089, - tree-optimization/100740, tree-optimization/101508, - tree-optimization/101972, tree-optimization/102087, - tree-optimization/102131, tree-optimization/103721, - tree-optimization/103997, tree-optimization/104112, - tree-optimization/104114, tree-optimization/104152, - tree-optimization/104156, tree-optimization/104214 - - don't emit C++ mangling aliases for compatibility with GCC 8.1 ppc64le - IEEE quad long double (PR target/104172) -- mark IEEE quad long double in DWARF as implicit typedef to _Float128 - (PR debug/104194) - -* Tue Jan 18 2022 Jakub Jelinek 12.0.1-0.2 -- update from trunk - - PRs c++/104007, c++/104074, fortran/103692, ipa/103989, libstdc++/101124, - libstdc++/104098, middle-end/103163, tree-optimization/103987, - tree-optimization/104038 -- default to -mabi=ieeelongdouble on ppc64le -- fix -Wdangling-pointer with -fsanitize=address (PR middle-end/104103) -- fix -masm=intel (PR target/104104) - -* Tue Jan 18 2022 Jakub Jelinek 12.0.1-0.1 -- update from trunk - - PRs c++/104031, c/63272, fortran/83079, fortran/87711, fortran/97896, - libstdc++/103650, libstdc++/104080, middle-end/101292, target/103124, - target/103973, target/104005, testsuite/104035, testsuite/104037, - tree-optimization/80532, tree-optimization/101941, - tree-optimization/104064 - -* Sat Jan 15 2022 Jakub Jelinek 12.0.0-0.5 -- update from trunk - - PRs ada/104027, analyzer/104029, c++/70417, c++/103705, c++/103991, - c/104002, fortran/67804, fortran/99256, fortran/103782, - libfortran/104006, libstdc++/91260, libstdc++/91383, libstdc++/95065, - libstdc++/103992, middle-end/100280, middle-end/101475, - middle-end/104026, target/94790, target/98737, target/100637, - target/103935, target/103941, target/104001, target/104003, - target/104014, tree-optimization/83072, tree-optimization/83073, - tree-optimization/96707, tree-optimization/97909, - tree-optimization/102192, tree-optimization/103989, - tree-optimization/104009, tree-optimization/104015 -- include rs6000-vecdefines.h on ppc* (#2040825) - -* Wed Jan 12 2022 Jakub Jelinek 12.0.0-0.4 -- update from trunk - - PRs ada/79724, analyzer/102692, analyzer/103940, c++/89074, c++/103480, - c++/100588, c++/101597, c++/103783, c++/103831, c++/103879, - c++/103912, c++/103946, c/101537, c/103881, fortran/82207, - fortran/101762, fortran/103366, fortran/103777, fortran/103789, - libstdc++/77760, libstdc++/100017, libstdc++/103726, libstdc++/103866, - libstdc++/103891, libstdc++/103955, middle-end/70090, - middle-end/101530, rtl-optimization/98782, rtl-optimization/103974, - target/53652, target/102024, target/102239, target/103465, - target/103804, target/103861, testsuite/102935, testsuite/103820, - tree-optimization/76174, tree-optimization/83541, - tree-optimization/100359, tree-optimization/103551, - tree-optimization/103821, tree-optimization/103948, - tree-optimization/103961, tree-optimization/103971, - tree-optimization/103977, tree-optimization/103990 - -* Sat Jan 8 2022 Jakub Jelinek 12.0.0-0.3 +* Mon Dec 19 2022 Jakub Jelinek 13.0.0-0.2 - new package diff --git a/gcc12-pr107468.patch b/gcc12-pr107468.patch deleted file mode 100644 index 0949b11..0000000 --- a/gcc12-pr107468.patch +++ /dev/null @@ -1,124 +0,0 @@ -libstdc++: Update from latest fast_float [PR107468] - -The following patch is a cherry-pick from -https://github.com/fastfloat/fast_float/pull/153 -to restrict fast_float Clinger's fast path to when rounding mode -is FE_TONEAREST. -Using std::fegetround showed in benchmarks too slow, so instead -it uses a check with 2 float additions and comparison to verify -if rounding is FE_TONEAREST. - -2022-11-20 Jakub Jelinek - - PR libstdc++/107468 - * src/c++17/fast_float/fast_float.h (detail::rounds_to_nearest): New - function, taken from https://github.com/fastfloat/fast_float/pull/153. - (from_chars_advanced): Only use Clinger's fast path if - detail::rounds_to_nearest(). - * testsuite/20_util/from_chars/pr107468.cc: New test. - ---- libstdc++-v3/src/c++17/fast_float/fast_float.h.jj 2022-04-28 15:56:18.315632888 +0200 -+++ libstdc++-v3/src/c++17/fast_float/fast_float.h 2022-11-20 18:53:49.570830249 +0100 -@@ -2842,6 +2842,48 @@ from_chars_result parse_infnan(const cha - return answer; - } - -+/** -+ * Returns true if the floating-pointing rounding mode is to 'nearest'. -+ * It is the default on most system. This function is meant to be inexpensive. -+ * Credit : @mwalcott3 -+ */ -+fastfloat_really_inline bool rounds_to_nearest() noexcept { -+ // See -+ // A fast function to check your floating-point rounding mode -+ // https://lemire.me/blog/2022/11/16/a-fast-function-to-check-your-floating-point-rounding-mode/ -+ // -+ // This function is meant to be equivalent to : -+ // prior: #include -+ // return fegetround() == FE_TONEAREST; -+ // However, it is expected to be much faster than the fegetround() -+ // function call. -+ // -+ // The volatile keywoard prevents the compiler from computing the function -+ // at compile-time. -+ // There might be other ways to prevent compile-time optimizations (e.g., asm). -+ // The value does not need to be std::numeric_limits::min(), any small -+ // value so that 1 + x should round to 1 would do (after accounting for excess -+ // precision, as in 387 instructions). -+ static volatile float fmin = std::numeric_limits::min(); -+ float fmini = fmin; // we copy it so that it gets loaded at most once. -+ // -+ // Explanation: -+ // Only when fegetround() == FE_TONEAREST do we have that -+ // fmin + 1.0f == 1.0f - fmin. -+ // -+ // FE_UPWARD: -+ // fmin + 1.0f > 1 -+ // 1.0f - fmin == 1 -+ // -+ // FE_DOWNWARD or FE_TOWARDZERO: -+ // fmin + 1.0f == 1 -+ // 1.0f - fmin < 1 -+ // -+ // Note: This may fail to be accurate if fast-math has been -+ // enabled, as rounding conventions may not apply. -+ return (fmini + 1.0f == 1.0f - fmini); -+} -+ - } // namespace detail - - template -@@ -2870,7 +2912,7 @@ from_chars_result from_chars_advanced(co - answer.ec = std::errc(); // be optimistic - answer.ptr = pns.lastmatch; - // Next is Clinger's fast path. -- if (binary_format::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format::max_exponent_fast_path() && pns.mantissa <=binary_format::max_mantissa_fast_path() && !pns.too_many_digits) { -+ if (binary_format::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format::max_exponent_fast_path() && pns.mantissa <=binary_format::max_mantissa_fast_path() && !pns.too_many_digits && detail::rounds_to_nearest()) { - value = T(pns.mantissa); - if (pns.exponent < 0) { value = value / binary_format::exact_power_of_ten(-pns.exponent); } - else { value = value * binary_format::exact_power_of_ten(pns.exponent); } ---- libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc.jj -+++ libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc -@@ -0,0 +1,42 @@ -+// Copyright (C) 2022 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 3, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING3. If not see -+// . -+ -+// { dg-do run { target c++17 } } -+// { dg-add-options ieee } -+ -+#include -+#include -+#include -+#include -+ -+int -+main() -+{ -+ // FP from_char not available otherwise. -+#if __cpp_lib_to_chars >= 201611L \ -+ && _GLIBCXX_USE_C99_FENV_TR1 \ -+ && defined(FE_DOWNWARD) \ -+ && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) -+ // PR libstdc++/107468 -+ float f; -+ char buf[] = "3.355447e+07"; -+ std::fesetround(FE_DOWNWARD); -+ auto [ptr, ec] = std::from_chars(buf, buf + sizeof(buf) - 1, f, std::chars_format::scientific); -+ VERIFY( ec == std::errc() && ptr == buf + sizeof(buf) - 1 ); -+ VERIFY( f == 33554472.0f ); -+#endif -+} diff --git a/gcc12-Wno-format-security.patch b/gcc13-Wno-format-security.patch similarity index 90% rename from gcc12-Wno-format-security.patch rename to gcc13-Wno-format-security.patch index 43e482a..4c71dac 100644 --- a/gcc12-Wno-format-security.patch +++ b/gcc13-Wno-format-security.patch @@ -32,27 +32,31 @@ fi --- Makefile.tpl.jj 2021-12-30 15:12:42.188164847 +0100 +++ Makefile.tpl 2022-01-07 12:06:12.115550714 +0100 -@@ -447,8 +447,8 @@ LDFLAGS = @LDFLAGS@ +@@ -446,9 +446,9 @@ LDFLAGS = @LDFLAGS@ LIBCFLAGS = $(CFLAGS) CXXFLAGS = @CXXFLAGS@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -GOCFLAGS = $(CFLAGS) -GDCFLAGS = $(CFLAGS) +-GM2FLAGS = $(CFLAGS) +GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS)) +GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS)) ++GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS)) # Pass additional PGO and LTO compiler options to the PGO build. BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS) --- Makefile.in.jj 2021-12-30 15:12:42.188164847 +0100 +++ Makefile.in 2022-01-07 12:06:27.335334561 +0100 -@@ -444,8 +444,8 @@ LDFLAGS = @LDFLAGS@ +@@ -443,9 +443,9 @@ LDFLAGS = @LDFLAGS@ LIBCFLAGS = $(CFLAGS) CXXFLAGS = @CXXFLAGS@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -GOCFLAGS = $(CFLAGS) -GDCFLAGS = $(CFLAGS) +-GM2FLAGS = $(CFLAGS) +GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS)) +GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS)) ++GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS)) # Pass additional PGO and LTO compiler options to the PGO build. BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS) diff --git a/gcc12-d-shared-libphobos.patch b/gcc13-d-shared-libphobos.patch similarity index 100% rename from gcc12-d-shared-libphobos.patch rename to gcc13-d-shared-libphobos.patch diff --git a/gcc12-fortran-fdec-duplicates.patch b/gcc13-fortran-fdec-duplicates.patch similarity index 100% rename from gcc12-fortran-fdec-duplicates.patch rename to gcc13-fortran-fdec-duplicates.patch diff --git a/gcc12-fortran-fdec-non-logical-if.patch b/gcc13-fortran-fdec-non-logical-if.patch similarity index 100% rename from gcc12-fortran-fdec-non-logical-if.patch rename to gcc13-fortran-fdec-non-logical-if.patch diff --git a/gcc12-fortran-fdec-override-kind.patch b/gcc13-fortran-fdec-override-kind.patch similarity index 100% rename from gcc12-fortran-fdec-override-kind.patch rename to gcc13-fortran-fdec-override-kind.patch diff --git a/gcc12-fortran-flogical-as-integer.patch b/gcc13-fortran-flogical-as-integer.patch similarity index 100% rename from gcc12-fortran-flogical-as-integer.patch rename to gcc13-fortran-flogical-as-integer.patch diff --git a/gcc12-hack.patch b/gcc13-hack.patch similarity index 100% rename from gcc12-hack.patch rename to gcc13-hack.patch diff --git a/gcc12-isl-dl.patch b/gcc13-isl-dl.patch similarity index 99% rename from gcc12-isl-dl.patch rename to gcc13-isl-dl.patch index 824288b..20dd8bf 100644 --- a/gcc12-isl-dl.patch +++ b/gcc13-isl-dl.patch @@ -629,7 +629,7 @@ --- gcc/graphite.cc.jj 2015-11-04 14:15:32.000000000 +0100 +++ gcc/graphite.cc 2015-11-04 14:56:02.645536409 +0100 @@ -60,6 +60,35 @@ along with GCC; see the file COPYING3. - #include "tree-into-ssa.h" + #include "tree-ssa-propagate.h" #include "graphite.h" +__typeof (isl_pointers__) isl_pointers__; @@ -664,7 +664,7 @@ /* Print global statistics to FILE. */ static void -@@ -365,6 +394,15 @@ graphite_transform_loops (void) +@@ -424,6 +453,15 @@ graphite_transform_loops (void) if (parallelized_function_p (cfun->decl)) return; @@ -680,7 +680,7 @@ calculate_dominance_info (CDI_DOMINATORS); /* We rely on post-dominators during merging of SESE regions so those -@@ -455,6 +493,14 @@ graphite_transform_loops (void) +@@ -519,6 +557,14 @@ graphite_transform_loops (void) } } diff --git a/gcc12-isl-dl2.patch b/gcc13-isl-dl2.patch similarity index 100% rename from gcc12-isl-dl2.patch rename to gcc13-isl-dl2.patch diff --git a/gcc12-libgomp-omp_h-multilib.patch b/gcc13-libgomp-omp_h-multilib.patch similarity index 100% rename from gcc12-libgomp-omp_h-multilib.patch rename to gcc13-libgomp-omp_h-multilib.patch diff --git a/gcc12-libstdc++-docs.patch b/gcc13-libstdc++-docs.patch similarity index 100% rename from gcc12-libstdc++-docs.patch rename to gcc13-libstdc++-docs.patch diff --git a/gcc13-libstdc++-test.patch b/gcc13-libstdc++-test.patch new file mode 100644 index 0000000..2ed38e4 --- /dev/null +++ b/gcc13-libstdc++-test.patch @@ -0,0 +1,60 @@ +2022-12-19 Jakub Jelinek + + * testsuite/20_util/to_chars/float16_c++23.cc (test): Use 3 argument + std::to_chars if fmt is std::chars_format{}, rather than 4 argument. + * testsuite/20_util/to_chars/float128_c++23.cc (test): Likewise, and + skip second part of testing that requires 5 argument std::to_chars. + +--- libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc.jj 2022-11-01 22:45:50.653626818 +0100 ++++ libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc 2022-12-19 16:23:28.989733811 +0100 +@@ -36,9 +36,16 @@ test(std::chars_format fmt = std::chars_ + for (int i = 0; i <= (unsigned short) ~0; ++i) + { + u.s = i; +- auto [ptr1, ec1] = std::to_chars(str1, str1 + sizeof(str1), u.f, fmt); +- auto [ptr2, ec2] = std::to_chars(str2, str2 + sizeof(str2), std::float32_t(u.f), fmt); +- VERIFY( ec1 == std::errc() && ec2 == std::errc()); ++ auto [ptr1, ec1] = (fmt == std::chars_format{} ++ ? std::to_chars(str1, str1 + sizeof(str1), u.f) ++ : std::to_chars(str1, str1 + sizeof(str1), u.f, ++ fmt)); ++ auto [ptr2, ec2] = (fmt == std::chars_format{} ++ ? std::to_chars(str2, str2 + sizeof(str2), ++ std::float32_t(u.f)) ++ : std::to_chars(str2, str2 + sizeof(str2), ++ std::float32_t(u.f), fmt)); ++ VERIFY( ec1 == std::errc() && ec2 == std::errc() ); + // std::cout << i << ' ' << std::string_view (str1, ptr1) + // << '\t' << std::string_view (str2, ptr2) << '\n'; + if (fmt == std::chars_format::fixed) +--- libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc.jj 2022-11-25 22:23:44.540104246 +0100 ++++ libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc 2022-12-19 16:24:49.142571475 +0100 +@@ -60,7 +60,9 @@ test(std::chars_format fmt = std::chars_ + char str1[10000], str2[10000]; + for (auto u : tests) + { +- auto [ptr1, ec1] = std::to_chars(str1, str1 + sizeof(str1), u, fmt); ++ auto [ptr1, ec1] = (fmt == std::chars_format{} ++ ? std::to_chars(str1, str1 + sizeof(str1), u) ++ : std::to_chars(str1, str1 + sizeof(str1), u, fmt)); + VERIFY( ec1 == std::errc() ); + // std::cout << u << ' ' << std::string_view (str1, ptr1) << '\n'; + if (fmt == std::chars_format::fixed) +@@ -77,13 +79,14 @@ test(std::chars_format fmt = std::chars_ + VERIFY( ec4 == std::errc() && ptr4 == ptr1 ); + VERIFY( u == v ); + ++ if (fmt == std::chars_format{}) ++ continue; ++ + auto [ptr5, ec5] = std::to_chars(str1, str1 + sizeof(str1), u, fmt, 90); + VERIFY( ec5 == std::errc() ); + // std::cout << u << ' ' << std::string_view (str1, ptr5) << '\n'; + v = 4.0f128; +- auto [ptr6, ec6] = std::from_chars(str1, ptr5, v, +- fmt == std::chars_format{} +- ? std::chars_format::general : fmt); ++ auto [ptr6, ec6] = std::from_chars(str1, ptr5, v, fmt); + VERIFY( ec6 == std::errc() && ptr6 == ptr5 ); + if (fmt == std::chars_format::fixed && u > 0.0f128 && u < 0.000001f128) + VERIFY( v == 0.0 ); diff --git a/gcc12-libtool-no-rpath.patch b/gcc13-libtool-no-rpath.patch similarity index 100% rename from gcc12-libtool-no-rpath.patch rename to gcc13-libtool-no-rpath.patch diff --git a/gcc12-no-add-needed.patch b/gcc13-no-add-needed.patch similarity index 100% rename from gcc12-no-add-needed.patch rename to gcc13-no-add-needed.patch diff --git a/gcc12-rh1574936.patch b/gcc13-rh1574936.patch similarity index 100% rename from gcc12-rh1574936.patch rename to gcc13-rh1574936.patch diff --git a/gcc12-sparc-config-detection.patch b/gcc13-sparc-config-detection.patch similarity index 77% rename from gcc12-sparc-config-detection.patch rename to gcc13-sparc-config-detection.patch index bb06b35..bbe8ec3 100644 --- a/gcc12-sparc-config-detection.patch +++ b/gcc13-sparc-config-detection.patch @@ -1,21 +1,21 @@ --- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500 +++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500 -@@ -2790,7 +2790,7 @@ sparc-*-rtems*) - tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" +@@ -3330,7 +3330,7 @@ sparc-*-rtems*) + tm_file="${tm_file} elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems" ;; -sparc-*-linux*) +sparc-*-linux* | sparcv9-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h" + tm_file="${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h" extra_options="${extra_options} sparc/long-double-switch.opt" case ${target} in -@@ -2844,7 +2844,7 @@ sparc64-*-rtems*) +@@ -3384,7 +3384,7 @@ sparc64-*-rtems*) extra_options="${extra_options}" tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64" ;; -sparc64-*-linux*) +sparc64*-*-linux*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h" + tm_file="sparc/biarch64.h ${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h" extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64" --- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500 diff --git a/sources b/sources index 4f41efa..0a723a9 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-12.2.1-20221121.tar.xz) = 6fef1438e77d8b7e7aeddea6d2d6a82c37d2e93f65ad9007f04206e1a368dd70597cef01188de4ee9bbfe1811a129303ce10b49cb9758a2b44abe4f0312d073a +SHA512 (gcc-13.0.0-20221219.tar.xz) = 67a6729c4dd99d975152be34f71ecedde9824f8ea96c9c810c94418293feec74ba5b2baa6697dbe8bff492698fcdbb6cd003a37f112ff3dff5dc5e9a7e1e985c SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz) = b099246fe4a5d0a372cdaee5da49083df5b2f4440a4e83961600cdf22d37da50c99ce9ae46b769f188a67034ee038cf863260988fc9d594e8e5fb3905a381dec SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6 From ffe156a41fe2f9ba2a6102a49e495edcb0d7cf29 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 20 Dec 2022 11:43:39 +0100 Subject: [PATCH 02/14] 13.0.0-0.3 --- gcc.spec | 4 +++- gcc13-aarch64-plugins.patch | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc13-aarch64-plugins.patch diff --git a/gcc.spec b/gcc.spec index 2b09e6b..d1e64d1 100644 --- a/gcc.spec +++ b/gcc.spec @@ -287,6 +287,7 @@ Patch9: gcc13-Wno-format-security.patch Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch Patch12: gcc13-libstdc++-test.patch +Patch13: gcc13-aarch64-plugins.patch Patch100: gcc13-fortran-fdec-duplicates.patch Patch101: gcc13-fortran-flogical-as-integer.patch @@ -858,6 +859,7 @@ so that there cannot be any synchronization problems. %endif %patch11 -p0 -b .d-shared-libphobos~ %patch12 -p0 -b .libstdc++-test~ +%patch13 -p0 -b .aarch64-plugins~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3443,5 +3445,5 @@ end %endif %changelog -* Mon Dec 19 2022 Jakub Jelinek 13.0.0-0.2 +* Tue Dec 20 2022 Jakub Jelinek 13.0.0-0.3 - new package diff --git a/gcc13-aarch64-plugins.patch b/gcc13-aarch64-plugins.patch new file mode 100644 index 0000000..a3fd7df --- /dev/null +++ b/gcc13-aarch64-plugins.patch @@ -0,0 +1,17 @@ +2022-12-20 Jakub Jelinek + + * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add + aarch64-option-extensions.def. + +--- gcc/config/aarch64/t-aarch64.jj 2022-04-04 13:55:46.001615509 +0200 ++++ gcc/config/aarch64/t-aarch64 2022-12-20 11:31:03.245651809 +0100 +@@ -22,7 +22,8 @@ TM_H += $(srcdir)/config/aarch64/aarch64 + OPTIONS_H_EXTRA += $(srcdir)/config/aarch64/aarch64-cores.def \ + $(srcdir)/config/aarch64/aarch64-arches.def \ + $(srcdir)/config/aarch64/aarch64-fusion-pairs.def \ +- $(srcdir)/config/aarch64/aarch64-tuning-flags.def ++ $(srcdir)/config/aarch64/aarch64-tuning-flags.def \ ++ $(srcdir)/config/aarch64/aarch64-option-extensions.def + + $(srcdir)/config/aarch64/aarch64-tune.md: s-aarch64-tune-md; @true + s-aarch64-tune-md: $(srcdir)/config/aarch64/gentune.sh \ From dda5e96f6971ff8864551a44ac07b0c7732cb038 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 20 Dec 2022 11:54:47 +0100 Subject: [PATCH 03/14] 13.0.0-0.3 --- gcc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc.spec b/gcc.spec index d1e64d1..9083b0e 100644 --- a/gcc.spec +++ b/gcc.spec @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.2%{?dist} +Release: %{gcc_release}.3%{?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 From 21fdb2e249a54197781a9ce31d1f815e7cf2f751 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 20 Dec 2022 16:43:59 +0100 Subject: [PATCH 04/14] 13.0.0-0.4 --- gcc.spec | 8 +++++--- gcc13-pr108153.patch | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 gcc13-pr108153.patch diff --git a/gcc.spec b/gcc.spec index 9083b0e..6621fbb 100644 --- a/gcc.spec +++ b/gcc.spec @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.3%{?dist} +Release: %{gcc_release}.4%{?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 @@ -288,6 +288,7 @@ Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch Patch12: gcc13-libstdc++-test.patch Patch13: gcc13-aarch64-plugins.patch +Patch14: gcc13-pr108153.patch Patch100: gcc13-fortran-fdec-duplicates.patch Patch101: gcc13-fortran-flogical-as-integer.patch @@ -860,6 +861,7 @@ so that there cannot be any synchronization problems. %patch11 -p0 -b .d-shared-libphobos~ %patch12 -p0 -b .libstdc++-test~ %patch13 -p0 -b .aarch64-plugins~ +%patch14 -p0 -b .pr108153~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -1154,7 +1156,7 @@ CONFIGURE_OPTS="\ %ifnarch sparc sparcv9 ppc --build=%{gcc_target_platform} \ %endif -%if 0%{?fedora} >= 40 || 0%{?rhel} >= 9 +%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9 %ifnarch %{arm} --with-build-config=bootstrap-lto --enable-link-serialization=1 \ %endif @@ -3445,5 +3447,5 @@ end %endif %changelog -* Tue Dec 20 2022 Jakub Jelinek 13.0.0-0.3 +* Tue Dec 20 2022 Jakub Jelinek 13.0.0-0.4 - new package diff --git a/gcc13-pr108153.patch b/gcc13-pr108153.patch new file mode 100644 index 0000000..1788708 --- /dev/null +++ b/gcc13-pr108153.patch @@ -0,0 +1,16 @@ +2022-12-20 Jakub Jelinek + + PR modula2/108153 + * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER. + +--- gcc/m2/gm2-gcc/m2linemap.def.jj 2022-12-19 14:59:50.169762747 +0100 ++++ gcc/m2/gm2-gcc/m2linemap.def 2022-12-20 16:36:18.321555969 +0100 +@@ -30,7 +30,7 @@ EXPORT QUALIFIED StartFile, EndFile, Sta + WarningAtf, NoteAtf, internal_error, location_t ; + + TYPE +- location_t = INTEGER ; ++ location_t = CARDINAL ; + + + PROCEDURE StartFile (filename: ADDRESS; linebegin: CARDINAL) ; From 2b70839dd22a8712f9e97e3a31ddbd062ac8c76a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 2 Jan 2023 18:32:45 +0100 Subject: [PATCH 05/14] 13.0.0-0.5 --- .gitignore | 1 + gcc13-aarch64-plugins.patch | 17 -------- gcc13-libstdc++-test.patch | 60 -------------------------- gcc13-pr108153.patch | 16 ------- gcc13-pr108263.patch | 67 +++++++++++++++++++++++++++++ gcc13-pr108264.patch | 51 ++++++++++++++++++++++ isl-rh2155127.patch | 85 +++++++++++++++++++++++++++++++++++++ sources | 2 +- 8 files changed, 205 insertions(+), 94 deletions(-) delete mode 100644 gcc13-aarch64-plugins.patch delete mode 100644 gcc13-libstdc++-test.patch delete mode 100644 gcc13-pr108153.patch create mode 100644 gcc13-pr108263.patch create mode 100644 gcc13-pr108264.patch create mode 100644 isl-rh2155127.patch diff --git a/.gitignore b/.gitignore index 4fa0d77..3b4ffa5 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ /nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz /gcc-12.2.1-20221121.tar.xz /gcc-13.0.0-20221219.tar.xz +/gcc-13.0.0-20230102.tar.xz diff --git a/gcc13-aarch64-plugins.patch b/gcc13-aarch64-plugins.patch deleted file mode 100644 index a3fd7df..0000000 --- a/gcc13-aarch64-plugins.patch +++ /dev/null @@ -1,17 +0,0 @@ -2022-12-20 Jakub Jelinek - - * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add - aarch64-option-extensions.def. - ---- gcc/config/aarch64/t-aarch64.jj 2022-04-04 13:55:46.001615509 +0200 -+++ gcc/config/aarch64/t-aarch64 2022-12-20 11:31:03.245651809 +0100 -@@ -22,7 +22,8 @@ TM_H += $(srcdir)/config/aarch64/aarch64 - OPTIONS_H_EXTRA += $(srcdir)/config/aarch64/aarch64-cores.def \ - $(srcdir)/config/aarch64/aarch64-arches.def \ - $(srcdir)/config/aarch64/aarch64-fusion-pairs.def \ -- $(srcdir)/config/aarch64/aarch64-tuning-flags.def -+ $(srcdir)/config/aarch64/aarch64-tuning-flags.def \ -+ $(srcdir)/config/aarch64/aarch64-option-extensions.def - - $(srcdir)/config/aarch64/aarch64-tune.md: s-aarch64-tune-md; @true - s-aarch64-tune-md: $(srcdir)/config/aarch64/gentune.sh \ diff --git a/gcc13-libstdc++-test.patch b/gcc13-libstdc++-test.patch deleted file mode 100644 index 2ed38e4..0000000 --- a/gcc13-libstdc++-test.patch +++ /dev/null @@ -1,60 +0,0 @@ -2022-12-19 Jakub Jelinek - - * testsuite/20_util/to_chars/float16_c++23.cc (test): Use 3 argument - std::to_chars if fmt is std::chars_format{}, rather than 4 argument. - * testsuite/20_util/to_chars/float128_c++23.cc (test): Likewise, and - skip second part of testing that requires 5 argument std::to_chars. - ---- libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc.jj 2022-11-01 22:45:50.653626818 +0100 -+++ libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc 2022-12-19 16:23:28.989733811 +0100 -@@ -36,9 +36,16 @@ test(std::chars_format fmt = std::chars_ - for (int i = 0; i <= (unsigned short) ~0; ++i) - { - u.s = i; -- auto [ptr1, ec1] = std::to_chars(str1, str1 + sizeof(str1), u.f, fmt); -- auto [ptr2, ec2] = std::to_chars(str2, str2 + sizeof(str2), std::float32_t(u.f), fmt); -- VERIFY( ec1 == std::errc() && ec2 == std::errc()); -+ auto [ptr1, ec1] = (fmt == std::chars_format{} -+ ? std::to_chars(str1, str1 + sizeof(str1), u.f) -+ : std::to_chars(str1, str1 + sizeof(str1), u.f, -+ fmt)); -+ auto [ptr2, ec2] = (fmt == std::chars_format{} -+ ? std::to_chars(str2, str2 + sizeof(str2), -+ std::float32_t(u.f)) -+ : std::to_chars(str2, str2 + sizeof(str2), -+ std::float32_t(u.f), fmt)); -+ VERIFY( ec1 == std::errc() && ec2 == std::errc() ); - // std::cout << i << ' ' << std::string_view (str1, ptr1) - // << '\t' << std::string_view (str2, ptr2) << '\n'; - if (fmt == std::chars_format::fixed) ---- libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc.jj 2022-11-25 22:23:44.540104246 +0100 -+++ libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc 2022-12-19 16:24:49.142571475 +0100 -@@ -60,7 +60,9 @@ test(std::chars_format fmt = std::chars_ - char str1[10000], str2[10000]; - for (auto u : tests) - { -- auto [ptr1, ec1] = std::to_chars(str1, str1 + sizeof(str1), u, fmt); -+ auto [ptr1, ec1] = (fmt == std::chars_format{} -+ ? std::to_chars(str1, str1 + sizeof(str1), u) -+ : std::to_chars(str1, str1 + sizeof(str1), u, fmt)); - VERIFY( ec1 == std::errc() ); - // std::cout << u << ' ' << std::string_view (str1, ptr1) << '\n'; - if (fmt == std::chars_format::fixed) -@@ -77,13 +79,14 @@ test(std::chars_format fmt = std::chars_ - VERIFY( ec4 == std::errc() && ptr4 == ptr1 ); - VERIFY( u == v ); - -+ if (fmt == std::chars_format{}) -+ continue; -+ - auto [ptr5, ec5] = std::to_chars(str1, str1 + sizeof(str1), u, fmt, 90); - VERIFY( ec5 == std::errc() ); - // std::cout << u << ' ' << std::string_view (str1, ptr5) << '\n'; - v = 4.0f128; -- auto [ptr6, ec6] = std::from_chars(str1, ptr5, v, -- fmt == std::chars_format{} -- ? std::chars_format::general : fmt); -+ auto [ptr6, ec6] = std::from_chars(str1, ptr5, v, fmt); - VERIFY( ec6 == std::errc() && ptr6 == ptr5 ); - if (fmt == std::chars_format::fixed && u > 0.0f128 && u < 0.000001f128) - VERIFY( v == 0.0 ); diff --git a/gcc13-pr108153.patch b/gcc13-pr108153.patch deleted file mode 100644 index 1788708..0000000 --- a/gcc13-pr108153.patch +++ /dev/null @@ -1,16 +0,0 @@ -2022-12-20 Jakub Jelinek - - PR modula2/108153 - * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER. - ---- gcc/m2/gm2-gcc/m2linemap.def.jj 2022-12-19 14:59:50.169762747 +0100 -+++ gcc/m2/gm2-gcc/m2linemap.def 2022-12-20 16:36:18.321555969 +0100 -@@ -30,7 +30,7 @@ EXPORT QUALIFIED StartFile, EndFile, Sta - WarningAtf, NoteAtf, internal_error, location_t ; - - TYPE -- location_t = INTEGER ; -+ location_t = CARDINAL ; - - - PROCEDURE StartFile (filename: ADDRESS; linebegin: CARDINAL) ; diff --git a/gcc13-pr108263.patch b/gcc13-pr108263.patch new file mode 100644 index 0000000..efbac3e --- /dev/null +++ b/gcc13-pr108263.patch @@ -0,0 +1,67 @@ +2023-01-02 Jakub Jelinek + + PR rtl-optimization/108263 + * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect + asm goto to EXIT. + + * gcc.dg/pr108263.c: New test. + +--- gcc/cfgrtl.cc.jj 2023-01-02 09:32:32.000000000 +0100 ++++ gcc/cfgrtl.cc 2023-01-02 14:13:40.658338194 +0100 +@@ -3910,6 +3910,7 @@ fixup_reorder_chain (void) + rtx ret_label = NULL_RTX; + basic_block nb; + edge_iterator ei; ++ bool asm_goto = false; + + if (EDGE_COUNT (bb->succs) == 0) + continue; +@@ -4016,7 +4017,9 @@ fixup_reorder_chain (void) + || e_fall->dest == EXIT_BLOCK_PTR_FOR_FN (cfun)) + continue; + +- /* Otherwise we'll have to use the fallthru fixup below. */ ++ /* Otherwise we'll have to use the fallthru fixup below. ++ But avoid redirecting asm goto to EXIT. */ ++ asm_goto = true; + } + else + { +@@ -4048,7 +4051,8 @@ fixup_reorder_chain (void) + return rather than a jump to the return block. */ + rtx_insn *ret, *use; + basic_block dest; +- if (bb_is_just_return (e_fall->dest, &ret, &use) ++ if (!asm_goto ++ && bb_is_just_return (e_fall->dest, &ret, &use) + && ((PATTERN (ret) == simple_return_rtx && targetm.have_simple_return ()) + || (PATTERN (ret) == ret_rtx && targetm.have_return ()))) + { +--- gcc/testsuite/gcc.dg/pr108263.c.jj 2023-01-02 14:09:49.381614027 +0100 ++++ gcc/testsuite/gcc.dg/pr108263.c 2023-01-02 14:07:16.899772608 +0100 +@@ -0,0 +1,25 @@ ++/* PR rtl-optimization/108263 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int v, *p; ++ ++void ++foo (void) ++{ ++ int i; ++ for (i = 0; ; i++) ++ { ++ if (v) ++ { ++ __label__ l1; ++ asm goto ("" : : : : l1); ++ l1: ++ return; ++ } ++ if (p[i]) ++ break; ++ } ++ asm goto ("" : : "r" (i) : : l2); ++l2:; ++} diff --git a/gcc13-pr108264.patch b/gcc13-pr108264.patch new file mode 100644 index 0000000..8683dad --- /dev/null +++ b/gcc13-pr108264.patch @@ -0,0 +1,51 @@ +2023-01-02 Jakub Jelinek + + PR middle-end/108264 + * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets + from source which doesn't have scalar integral mode first convert + it to outer_mode. + + * gcc.dg/pr108264.c: New test. + +--- gcc/expr.cc.jj 2023-01-02 09:32:23.000000000 +0100 ++++ gcc/expr.cc 2023-01-02 16:48:13.226990815 +0100 +@@ -6226,6 +6226,9 @@ store_expr (tree exp, rtx target, int ca + temp = convert_modes (inner_mode, outer_mode, temp, + SUBREG_PROMOTED_SIGN (target)); + } ++ else if (!SCALAR_INT_MODE_P (GET_MODE (temp))) ++ temp = convert_modes (outer_mode, TYPE_MODE (TREE_TYPE (exp)), ++ temp, SUBREG_PROMOTED_SIGN (target)); + + convert_move (SUBREG_REG (target), temp, + SUBREG_PROMOTED_SIGN (target)); +--- gcc/testsuite/gcc.dg/pr108264.c.jj 2023-01-02 17:01:14.865887522 +0100 ++++ gcc/testsuite/gcc.dg/pr108264.c 2023-01-02 17:00:52.238209030 +0100 +@@ -0,0 +1,27 @@ ++/* PR middle-end/108264 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++/* { dg-additional-options "-fpic" { target fpic } } */ ++ ++int v; ++extern int bar (void); ++ ++static inline void ++foo (char *d) ++{ ++ switch (bar ()) ++ { ++ case 2: ++ d[0] = d[1] = d[2] = d[3] = v; ++ break; ++ case 4: ++ d[0] = 0; ++ } ++} ++ ++int ++baz (int x) ++{ ++ foo ((char *) &x); ++ return x; ++} diff --git a/isl-rh2155127.patch b/isl-rh2155127.patch new file mode 100644 index 0000000..092bddb --- /dev/null +++ b/isl-rh2155127.patch @@ -0,0 +1,85 @@ +From: Sven Verdoolaege +Date: Mon, 6 Jun 2022 12:56:02 +0000 (+0200) +Subject: update m4/ax_prog_cc_for_build.m4 +X-Git-Tag: isl-0.25~11 +X-Git-Url: https://repo.or.cz/isl.git/commitdiff_plain/b4dcdfadc29a6c9f410a72f345f3f32725b1d38b + +update m4/ax_prog_cc_for_build.m4 + +In particular, update to the latest version from the autoconf archive, +but preserve the changes from isl-0.22.1-358-gcd42abdf2 +(m4/ax_prog_cc_for_build.m4: do not override host compiler dependency style, +Tue Jun 9 10:54:10 2020 +0200). + +Signed-off-by: Sven Verdoolaege + +--- isl-0.24/m4/ax_prog_cc_for_build.m4.jj 2021-03-02 12:07:09.000000000 +0100 ++++ isl-0.24/m4/ax_prog_cc_for_build.m4 2022-12-20 18:11:18.855777817 +0100 +@@ -32,7 +32,7 @@ + # and this notice are preserved. This file is offered as-is, without any + # warranty. + +-#serial 18 ++#serial 21 + + AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) + AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl +@@ -44,6 +44,8 @@ dnl Use the standard macros, but make th + dnl + pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl + pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl ++pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl ++pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl + pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl + pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl + pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl +@@ -86,7 +88,21 @@ AS_IF([test -n "$build"], [ac_build + [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"]) + + AC_LANG_PUSH([C]) ++ ++dnl The pushdef([ac_cv_c_compiler_gnu], ...) currently does not cover ++dnl the use of this variable in _AC_LANG_COMPILER_GNU called by ++dnl AC_PROG_CC. Unset this cache variable temporarily as a workaround. ++was_set_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y} ++AS_IF([test ${was_set_c_compiler_gnu}], ++ [saved_c_compiler_gnu=$[ac_cv_c_compiler_gnu] ++ AS_UNSET([[ac_cv_c_compiler_gnu]])]) ++ + AC_PROG_CC ++ ++dnl Restore ac_cv_c_compiler_gnu ++AS_IF([test ${was_set_c_compiler_gnu}], ++ [[ac_cv_c_compiler_gnu]=$[saved_c_compiler_gnu]]) ++ + _AC_COMPILER_EXEEXT + _AC_COMPILER_OBJEXT + AC_PROG_CPP +--- isl-0.24/configure.jj 2021-04-26 11:13:19.000000000 +0200 ++++ isl-0.24/configure 2022-12-20 18:11:36.882518568 +0100 +@@ -5002,6 +4990,13 @@ ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR + ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_build_c_compiler_gnu + ++ ++was_set_c_compiler_gnu=${ac_cv_c_compiler_gnu+y} ++if test ${was_set_c_compiler_gnu}; then : ++ saved_c_compiler_gnu=$ac_cv_c_compiler_gnu ++ { ac_cv_c_compiler_gnu=; unset ac_cv_c_compiler_gnu;} ++fi ++ + ac_ext=c + ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' + ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +@@ -5728,6 +5723,11 @@ else + fi + + ++ ++if test ${was_set_c_compiler_gnu}; then : ++ ac_cv_c_compiler_gnu=$saved_c_compiler_gnu ++fi ++ + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + diff --git a/sources b/sources index 0a723a9..c101e9e 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-13.0.0-20221219.tar.xz) = 67a6729c4dd99d975152be34f71ecedde9824f8ea96c9c810c94418293feec74ba5b2baa6697dbe8bff492698fcdbb6cd003a37f112ff3dff5dc5e9a7e1e985c +SHA512 (gcc-13.0.0-20230102.tar.xz) = 2180fdf0a41b70ce10c8bce9bd93c14b97e1a1979f59ac747a2f595de08668a078aa4a4b8ee80e5ddb20ec010fd4f92b0710fa98cdf763a45d63bca2c5340778 SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz) = b099246fe4a5d0a372cdaee5da49083df5b2f4440a4e83961600cdf22d37da50c99ce9ae46b769f188a67034ee038cf863260988fc9d594e8e5fb3905a381dec SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6 From 0831f1a160ffcc7bc1afecf33f9494a66e287efa Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 2 Jan 2023 18:34:57 +0100 Subject: [PATCH 06/14] 13.0.0-0.5 --- gcc.spec | 22 ++++++++++++---------- update-gcc.sh | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/gcc.spec b/gcc.spec index 6621fbb..9ae392b 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20221219 -%global gitrev fb5b1c22d92837c41df870c410ed9e7c133df5da +%global DATE 20230102 +%global gitrev 03416d670d42ba9bb15caa682778b63ffffdeb92 %global gcc_version 13.0.0 %global gcc_major 13 # Note, gcc_release must be integer, if you want to add suffixes to @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.4%{?dist} +Release: %{gcc_release}.5%{?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 @@ -286,9 +286,10 @@ Patch8: gcc13-no-add-needed.patch Patch9: gcc13-Wno-format-security.patch Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch -Patch12: gcc13-libstdc++-test.patch -Patch13: gcc13-aarch64-plugins.patch -Patch14: gcc13-pr108153.patch +Patch12: gcc13-pr108263.patch +Patch13: gcc13-pr108264.patch + +Patch50: isl-rh2155127.patch Patch100: gcc13-fortran-fdec-duplicates.patch Patch101: gcc13-fortran-flogical-as-integer.patch @@ -859,9 +860,10 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .libstdc++-test~ -%patch13 -p0 -b .aarch64-plugins~ -%patch14 -p0 -b .pr108153~ +%patch12 -p0 -b .pr108263~ +%patch13 -p0 -b .pr108264~ + +%patch50 -p0 -b .rh2155127~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3447,5 +3449,5 @@ end %endif %changelog -* Tue Dec 20 2022 Jakub Jelinek 13.0.0-0.4 +* Mon Jan 2 2023 Jakub Jelinek 13.0.0-0.5 - new package diff --git a/update-gcc.sh b/update-gcc.sh index d34d6ce..66e94c6 100755 --- a/update-gcc.sh +++ b/update-gcc.sh @@ -3,5 +3,5 @@ git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1 d=`date --iso | sed 's/-//g'` -git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-12.2.1-$d/ $1 | xz -9e > gcc-12.2.1-$d.tar.xz +git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-13.0.0-$d/ $1 | xz -9e > gcc-13.0.0-$d.tar.xz rm -rf gcc-dir.tmp From 557dd6bb8b4b34731f478e03e08a5f0351394cce Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 2 Jan 2023 18:56:03 +0100 Subject: [PATCH 07/14] 13.0.0-0.5 --- gcc.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc.spec b/gcc.spec index 9ae392b..057c607 100644 --- a/gcc.spec +++ b/gcc.spec @@ -864,6 +864,7 @@ so that there cannot be any synchronization problems. %patch13 -p0 -b .pr108264~ %patch50 -p0 -b .rh2155127~ +touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4 %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ From 8c110c93426f1658e3a645693427ec85e109dd4c Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 6 Jan 2023 16:00:01 +0100 Subject: [PATCH 08/14] 13.0.0-0.6 --- gcc.spec | 16 ++++----- gcc13-pr107453.patch | 38 +++++++++++++++++++++ gcc13-pr108047.patch | 81 ++++++++++++++++++++++++++++++++++++++++++++ gcc13-pr108263.patch | 67 ------------------------------------ gcc13-pr108264.patch | 51 ---------------------------- 5 files changed, 127 insertions(+), 126 deletions(-) create mode 100644 gcc13-pr107453.patch create mode 100644 gcc13-pr108047.patch delete mode 100644 gcc13-pr108263.patch delete mode 100644 gcc13-pr108264.patch diff --git a/gcc.spec b/gcc.spec index 057c607..02cef41 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20230102 -%global gitrev 03416d670d42ba9bb15caa682778b63ffffdeb92 +%global DATE 20230106 +%global gitrev c6c750faf80327e73b3001de89080943a2ee71f6 %global gcc_version 13.0.0 %global gcc_major 13 # Note, gcc_release must be integer, if you want to add suffixes to @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.5%{?dist} +Release: %{gcc_release}.6%{?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 @@ -286,8 +286,8 @@ Patch8: gcc13-no-add-needed.patch Patch9: gcc13-Wno-format-security.patch Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch -Patch12: gcc13-pr108263.patch -Patch13: gcc13-pr108264.patch +Patch12: gcc13-pr107453.patch +Patch13: gcc13-pr108047.patch Patch50: isl-rh2155127.patch @@ -860,8 +860,8 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr108263~ -%patch13 -p0 -b .pr108264~ +%patch12 -p0 -b .pr107453~ +%patch13 -p0 -b .pr108047~ %patch50 -p0 -b .rh2155127~ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4 @@ -3450,5 +3450,5 @@ end %endif %changelog -* Mon Jan 2 2023 Jakub Jelinek 13.0.0-0.5 +* Fri Jan 6 2023 Jakub Jelinek 13.0.0-0.6 - new package diff --git a/gcc13-pr107453.patch b/gcc13-pr107453.patch new file mode 100644 index 0000000..6461f1d --- /dev/null +++ b/gcc13-pr107453.patch @@ -0,0 +1,38 @@ +2023-01-06 Jakub Jelinek + + PR target/107453 + * calls.cc (expand_call): For calls with + TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args. + Formatting fix. + +--- gcc/calls.cc.jj 2023-01-02 09:32:28.834192105 +0100 ++++ gcc/calls.cc 2023-01-06 14:52:14.740594896 +0100 +@@ -2908,8 +2908,8 @@ expand_call (tree exp, rtx target, int i + } + + /* Count the arguments and set NUM_ACTUALS. */ +- num_actuals = +- call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; ++ num_actuals ++ = call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; + + /* Compute number of named args. + First, do a raw count of the args for INIT_CUMULATIVE_ARGS. */ +@@ -2919,6 +2919,8 @@ expand_call (tree exp, rtx target, int i + = (list_length (type_arg_types) + /* Count the struct value address, if it is passed as a parm. */ + + structure_value_addr_parm); ++ else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) ++ n_named_args = 0; + else + /* If we know nothing, treat all args as named. */ + n_named_args = num_actuals; +@@ -2957,6 +2959,8 @@ expand_call (tree exp, rtx target, int i + && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far)) + /* Don't include the last named arg. */ + --n_named_args; ++ else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) ++ n_named_args = 0; + else + /* Treat all args as named. */ + n_named_args = num_actuals; diff --git a/gcc13-pr108047.patch b/gcc13-pr108047.patch new file mode 100644 index 0000000..cb4b8d1 --- /dev/null +++ b/gcc13-pr108047.patch @@ -0,0 +1,81 @@ +2023-01-06 Jakub Jelinek + + PR c++/105838 + PR c++/108047 + PR c++/108266 + * call.cc (maybe_init_list_as_range): Always return NULL_TREE if + processing_template_decl. + + * g++.dg/tree-ssa/initlist-opt2.C: New test. + * g++.dg/tree-ssa/initlist-opt3.C: New test. + +--- gcc/cp/call.cc.jj 2022-12-15 09:24:44.265935297 +0100 ++++ gcc/cp/call.cc 2023-01-06 11:24:44.837270905 +0100 +@@ -4285,7 +4285,8 @@ maybe_init_list_as_array (tree elttype, + static tree + maybe_init_list_as_range (tree fn, tree expr) + { +- if (BRACE_ENCLOSED_INITIALIZER_P (expr) ++ if (!processing_template_decl ++ && BRACE_ENCLOSED_INITIALIZER_P (expr) + && is_list_ctor (fn) + && decl_in_std_namespace_p (fn)) + { +--- gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C.jj 2023-01-06 11:53:13.160432870 +0100 ++++ gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C 2023-01-06 11:53:44.561976302 +0100 +@@ -0,0 +1,31 @@ ++// PR c++/105838 ++// { dg-additional-options -fdump-tree-gimple } ++// { dg-do compile { target c++11 } } ++ ++// Test that we do range-initialization from const char *. ++// { dg-final { scan-tree-dump {_M_range_initialize} "gimple" } } ++ ++#include ++#include ++ ++void g (const void *); ++ ++template ++void f (const char *p) ++{ ++ std::vector lst = { ++ "aahing", "aaliis", "aarrgh", "abacas", "abacus", "abakas", "abamps", "abands", "abased", "abaser", "abases", "abasia", ++ "abated", "abater", "abates", "abatis", "abator", "abattu", "abayas", "abbacy", "abbess", "abbeys", "abbots", "abcees", ++ "abdabs", "abduce", "abduct", "abears", "abeigh", "abeles", "abelia", "abends", "abhors", "abided", "abider", "abides", ++ "abject", "abjure", "ablate", "ablaut", "ablaze", "ablest", "ablets", "abling", "ablins", "abloom", "ablush", "abmhos", ++ "aboard", "aboded", "abodes", "abohms", "abolla", "abomas", "aboral", "abords", "aborne", "aborts", "abound", "abouts", ++ "aboves", "abrade", "abraid", "abrash", "abrays", "abrazo", "abrege", "abrins", "abroad", "abrupt", "abseil", "absent", ++ }; ++ ++ g(&lst); ++} ++ ++void h (const char *p) ++{ ++ f<0> (p); ++} +--- gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C.jj 2023-01-06 11:56:36.981469370 +0100 ++++ gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C 2023-01-06 11:56:09.984861898 +0100 +@@ -0,0 +1,21 @@ ++// PR c++/108266 ++// { dg-do compile { target c++11 } } ++ ++#include ++#include ++ ++struct S { S (const char *); }; ++void bar (std::vector); ++ ++template ++void ++foo () ++{ ++ bar ({"", ""}); ++} ++ ++void ++baz () ++{ ++ foo<0> (); ++} diff --git a/gcc13-pr108263.patch b/gcc13-pr108263.patch deleted file mode 100644 index efbac3e..0000000 --- a/gcc13-pr108263.patch +++ /dev/null @@ -1,67 +0,0 @@ -2023-01-02 Jakub Jelinek - - PR rtl-optimization/108263 - * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect - asm goto to EXIT. - - * gcc.dg/pr108263.c: New test. - ---- gcc/cfgrtl.cc.jj 2023-01-02 09:32:32.000000000 +0100 -+++ gcc/cfgrtl.cc 2023-01-02 14:13:40.658338194 +0100 -@@ -3910,6 +3910,7 @@ fixup_reorder_chain (void) - rtx ret_label = NULL_RTX; - basic_block nb; - edge_iterator ei; -+ bool asm_goto = false; - - if (EDGE_COUNT (bb->succs) == 0) - continue; -@@ -4016,7 +4017,9 @@ fixup_reorder_chain (void) - || e_fall->dest == EXIT_BLOCK_PTR_FOR_FN (cfun)) - continue; - -- /* Otherwise we'll have to use the fallthru fixup below. */ -+ /* Otherwise we'll have to use the fallthru fixup below. -+ But avoid redirecting asm goto to EXIT. */ -+ asm_goto = true; - } - else - { -@@ -4048,7 +4051,8 @@ fixup_reorder_chain (void) - return rather than a jump to the return block. */ - rtx_insn *ret, *use; - basic_block dest; -- if (bb_is_just_return (e_fall->dest, &ret, &use) -+ if (!asm_goto -+ && bb_is_just_return (e_fall->dest, &ret, &use) - && ((PATTERN (ret) == simple_return_rtx && targetm.have_simple_return ()) - || (PATTERN (ret) == ret_rtx && targetm.have_return ()))) - { ---- gcc/testsuite/gcc.dg/pr108263.c.jj 2023-01-02 14:09:49.381614027 +0100 -+++ gcc/testsuite/gcc.dg/pr108263.c 2023-01-02 14:07:16.899772608 +0100 -@@ -0,0 +1,25 @@ -+/* PR rtl-optimization/108263 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+int v, *p; -+ -+void -+foo (void) -+{ -+ int i; -+ for (i = 0; ; i++) -+ { -+ if (v) -+ { -+ __label__ l1; -+ asm goto ("" : : : : l1); -+ l1: -+ return; -+ } -+ if (p[i]) -+ break; -+ } -+ asm goto ("" : : "r" (i) : : l2); -+l2:; -+} diff --git a/gcc13-pr108264.patch b/gcc13-pr108264.patch deleted file mode 100644 index 8683dad..0000000 --- a/gcc13-pr108264.patch +++ /dev/null @@ -1,51 +0,0 @@ -2023-01-02 Jakub Jelinek - - PR middle-end/108264 - * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets - from source which doesn't have scalar integral mode first convert - it to outer_mode. - - * gcc.dg/pr108264.c: New test. - ---- gcc/expr.cc.jj 2023-01-02 09:32:23.000000000 +0100 -+++ gcc/expr.cc 2023-01-02 16:48:13.226990815 +0100 -@@ -6226,6 +6226,9 @@ store_expr (tree exp, rtx target, int ca - temp = convert_modes (inner_mode, outer_mode, temp, - SUBREG_PROMOTED_SIGN (target)); - } -+ else if (!SCALAR_INT_MODE_P (GET_MODE (temp))) -+ temp = convert_modes (outer_mode, TYPE_MODE (TREE_TYPE (exp)), -+ temp, SUBREG_PROMOTED_SIGN (target)); - - convert_move (SUBREG_REG (target), temp, - SUBREG_PROMOTED_SIGN (target)); ---- gcc/testsuite/gcc.dg/pr108264.c.jj 2023-01-02 17:01:14.865887522 +0100 -+++ gcc/testsuite/gcc.dg/pr108264.c 2023-01-02 17:00:52.238209030 +0100 -@@ -0,0 +1,27 @@ -+/* PR middle-end/108264 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+/* { dg-additional-options "-fpic" { target fpic } } */ -+ -+int v; -+extern int bar (void); -+ -+static inline void -+foo (char *d) -+{ -+ switch (bar ()) -+ { -+ case 2: -+ d[0] = d[1] = d[2] = d[3] = v; -+ break; -+ case 4: -+ d[0] = 0; -+ } -+} -+ -+int -+baz (int x) -+{ -+ foo ((char *) &x); -+ return x; -+} From 7ec4122d60e908a15287a30712dd37acd6a481e6 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 6 Jan 2023 16:02:35 +0100 Subject: [PATCH 09/14] 13.0.0-0.6 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3b4ffa5..ac58c1c 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,4 @@ /gcc-12.2.1-20221121.tar.xz /gcc-13.0.0-20221219.tar.xz /gcc-13.0.0-20230102.tar.xz +/gcc-13.0.0-20230106.tar.xz diff --git a/sources b/sources index c101e9e..bedf541 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-13.0.0-20230102.tar.xz) = 2180fdf0a41b70ce10c8bce9bd93c14b97e1a1979f59ac747a2f595de08668a078aa4a4b8ee80e5ddb20ec010fd4f92b0710fa98cdf763a45d63bca2c5340778 +SHA512 (gcc-13.0.0-20230106.tar.xz) = 60373be7d19db8abfcf72e8d4cabf1df7fd77effea746e08f31fff062e9a19789d85293c919639ef7cce17955706831f9b0b9f90db1439c79e14553e981f601d SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz) = b099246fe4a5d0a372cdaee5da49083df5b2f4440a4e83961600cdf22d37da50c99ce9ae46b769f188a67034ee038cf863260988fc9d594e8e5fb3905a381dec SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6 From 76c12c7028aafcf00b2eb4c964369b9c7d326196 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 7 Jan 2023 00:00:05 +0100 Subject: [PATCH 10/14] 13.0.0-0.6 --- gcc.spec | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gcc.spec b/gcc.spec index 02cef41..bc5c466 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1571,7 +1571,7 @@ ln -sf ../../../libgphobos.so.4.* libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do - ln -sf ../../../libm2$i.so.17.* libm2$i.so + ln -sf ../../../libm2$i.so.18.* libm2$i.so done %endif %if %{build_libitm} @@ -1606,7 +1606,7 @@ ln -sf ../../../../%{_lib}/libgphobos.so.4.* libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do - ln -sf ../../../../%{_lib}/libm2$i.so.17.* libm2$i.so + ln -sf ../../../../%{_lib}/libm2$i.so.18.* libm2$i.so done %endif %if %{build_libitm} @@ -1756,8 +1756,8 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.4.* | sed 's %if %{build_m2} for i in cor iso log min pim; do rm -f libm2$i.so - echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so - echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so + echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so + echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so rm -f 64/m2/m2$i/*.{a,la} ln -sf ../../libm2$i.so 64/m2/m2$i/ ln -sf ../../libm2$i.a 64/m2/m2$i/ @@ -1875,8 +1875,8 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.4.* | sed 's %if %{build_m2} for i in cor iso log min pim; do rm -f libm2$i.so - echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so - echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.17.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so + echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so + echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so rm -f 32/m2/m2$i/*.{a,la} ln -sf ../../libm2$i.so 32/m2/m2$i/ ln -sf ../../libm2$i.a 32/m2/m2$i/ @@ -2055,7 +2055,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.4.* %endif %if %{build_m2} for i in cor iso log min pim; do - chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.17.* + chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.18.* done %endif %if %{build_libitm} @@ -2995,7 +2995,7 @@ end %doc rpm.doc/gm2/* %files -n libgm2 -%{_prefix}/%{_lib}/libm2*.so.17* +%{_prefix}/%{_lib}/libm2*.so.18* %doc rpm.doc/libgm2/* %files -n libgm2-static From 57824c584e0257b146f9f38e73e8e3c6750bc351 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 8 Jan 2023 20:55:16 +0100 Subject: [PATCH 11/14] 13.0.0-0.7 --- gcc.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc.spec b/gcc.spec index bc5c466..8ab34cb 100644 --- a/gcc.spec +++ b/gcc.spec @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.6%{?dist} +Release: %{gcc_release}.7%{?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 @@ -917,11 +917,13 @@ export CONFIG_SITE=NONE CC=gcc CXX=g++ -OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'` +OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[123]//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-Wp,\)\?-U_FORTIFY_SOURCE//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fno-omit-frame-pointer //g';s/-mbackchain //g;s/-mno-omit-leaf-frame-pointer //g` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'` %ifarch sparc OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` @@ -3450,5 +3452,5 @@ end %endif %changelog -* Fri Jan 6 2023 Jakub Jelinek 13.0.0-0.6 +* Sun Jan 8 2023 Jakub Jelinek 13.0.0-0.7 - new package From 77ae222f7a075cd28848127b58d17e68345f3206 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 8 Jan 2023 21:07:54 +0100 Subject: [PATCH 12/14] 13.0.0-0.7 --- gcc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc.spec b/gcc.spec index 8ab34cb..80517f0 100644 --- a/gcc.spec +++ b/gcc.spec @@ -923,7 +923,7 @@ OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-object OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` -OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fno-omit-frame-pointer //g';s/-mbackchain //g;s/-mno-omit-leaf-frame-pointer //g` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fno-omit-frame-pointer //g;s/-mbackchain //g;s/-mno-omit-leaf-frame-pointer //g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'` %ifarch sparc OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` From 0607372545ebcd9e972d45ce536b5850c57345d6 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 12 Jan 2023 19:08:57 +0100 Subject: [PATCH 13/14] 13.0.0-0.8 --- .gitignore | 1 + gcc.spec | 14 +++--- gcc13-pr107453.patch | 38 --------------- gcc13-pr107678.patch | 110 +++++++++++++++++++++++++++++++++++++++++++ gcc13-pr108047.patch | 81 ------------------------------- sources | 2 +- 6 files changed, 118 insertions(+), 128 deletions(-) delete mode 100644 gcc13-pr107453.patch create mode 100644 gcc13-pr107678.patch delete mode 100644 gcc13-pr108047.patch diff --git a/.gitignore b/.gitignore index ac58c1c..053ac31 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ /gcc-13.0.0-20221219.tar.xz /gcc-13.0.0-20230102.tar.xz /gcc-13.0.0-20230106.tar.xz +/gcc-13.0.0-20230112.tar.xz diff --git a/gcc.spec b/gcc.spec index 80517f0..8c59ea8 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20230106 -%global gitrev c6c750faf80327e73b3001de89080943a2ee71f6 +%global DATE 20230112 +%global gitrev c30a47620595c0ba46276c631a848dd181f2dd88 %global gcc_version 13.0.0 %global gcc_major 13 # Note, gcc_release must be integer, if you want to add suffixes to @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.7%{?dist} +Release: %{gcc_release}.8%{?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 @@ -286,8 +286,7 @@ Patch8: gcc13-no-add-needed.patch Patch9: gcc13-Wno-format-security.patch Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch -Patch12: gcc13-pr107453.patch -Patch13: gcc13-pr108047.patch +Patch12: gcc13-pr107678.patch Patch50: isl-rh2155127.patch @@ -860,8 +859,7 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr107453~ -%patch13 -p0 -b .pr108047~ +%patch12 -p0 -b .pr107678~ %patch50 -p0 -b .rh2155127~ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4 @@ -3452,5 +3450,5 @@ end %endif %changelog -* Sun Jan 8 2023 Jakub Jelinek 13.0.0-0.7 +* Thu Jan 12 2023 Jakub Jelinek 13.0.0-0.8 - new package diff --git a/gcc13-pr107453.patch b/gcc13-pr107453.patch deleted file mode 100644 index 6461f1d..0000000 --- a/gcc13-pr107453.patch +++ /dev/null @@ -1,38 +0,0 @@ -2023-01-06 Jakub Jelinek - - PR target/107453 - * calls.cc (expand_call): For calls with - TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args. - Formatting fix. - ---- gcc/calls.cc.jj 2023-01-02 09:32:28.834192105 +0100 -+++ gcc/calls.cc 2023-01-06 14:52:14.740594896 +0100 -@@ -2908,8 +2908,8 @@ expand_call (tree exp, rtx target, int i - } - - /* Count the arguments and set NUM_ACTUALS. */ -- num_actuals = -- call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; -+ num_actuals -+ = call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; - - /* Compute number of named args. - First, do a raw count of the args for INIT_CUMULATIVE_ARGS. */ -@@ -2919,6 +2919,8 @@ expand_call (tree exp, rtx target, int i - = (list_length (type_arg_types) - /* Count the struct value address, if it is passed as a parm. */ - + structure_value_addr_parm); -+ else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) -+ n_named_args = 0; - else - /* If we know nothing, treat all args as named. */ - n_named_args = num_actuals; -@@ -2957,6 +2959,8 @@ expand_call (tree exp, rtx target, int i - && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far)) - /* Don't include the last named arg. */ - --n_named_args; -+ else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) -+ n_named_args = 0; - else - /* Treat all args as named. */ - n_named_args = num_actuals; diff --git a/gcc13-pr107678.patch b/gcc13-pr107678.patch new file mode 100644 index 0000000..af335f3 --- /dev/null +++ b/gcc13-pr107678.patch @@ -0,0 +1,110 @@ +A recent change only initializes the regs.how[] during Dwarf unwinding +which resulted in an uninitialized offset used in return address signing +and random failures during unwinding. The fix is to encode the return +address signing state in REG_UNSAVED and REG_UNDEFINED. + +2023-01-10 Wilco Dijkstra + + PR target/107678 + * unwind-dw2.c (execute_cfa_program): Use REG_UNSAVED/UNDEFINED + to encode return address signing state. + * config/aarch64/aarch64-unwind.h (aarch64_demangle_return_addr) + Check current return address signing state. + (aarch64_frob_update_contex): Remove. + +--- libgcc/config/aarch64/aarch64-unwind.h ++++ libgcc/config/aarch64/aarch64-unwind.h +@@ -29,8 +29,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + + #define MD_DEMANGLE_RETURN_ADDR(context, fs, addr) \ + aarch64_demangle_return_addr (context, fs, addr) +-#define MD_FROB_UPDATE_CONTEXT(context, fs) \ +- aarch64_frob_update_context (context, fs) + + static inline int + aarch64_cie_signed_with_b_key (struct _Unwind_Context *context) +@@ -55,42 +53,27 @@ aarch64_cie_signed_with_b_key (struct _Unwind_Context *context) + + static inline void * + aarch64_demangle_return_addr (struct _Unwind_Context *context, +- _Unwind_FrameState *fs ATTRIBUTE_UNUSED, ++ _Unwind_FrameState *fs, + _Unwind_Word addr_word) + { + void *addr = (void *)addr_word; +- if (context->flags & RA_SIGNED_BIT) ++ const int reg = DWARF_REGNUM_AARCH64_RA_STATE; ++ ++ if (fs->regs.how[reg] == REG_UNSAVED) ++ return addr; ++ ++ /* Return-address signing state is toggled by DW_CFA_GNU_window_save (where ++ REG_UNDEFINED means enabled), or set by a DW_CFA_expression. */ ++ if (fs->regs.how[reg] == REG_UNDEFINED ++ || (_Unwind_GetGR (context, reg) & 0x1) != 0) + { + _Unwind_Word salt = (_Unwind_Word) context->cfa; + if (aarch64_cie_signed_with_b_key (context) != 0) + return __builtin_aarch64_autib1716 (addr, salt); + return __builtin_aarch64_autia1716 (addr, salt); + } +- else +- return addr; +-} +- +-/* Do AArch64 private initialization on CONTEXT based on frame info FS. Mark +- CONTEXT as return address signed if bit 0 of DWARF_REGNUM_AARCH64_RA_STATE is +- set. */ +- +-static inline void +-aarch64_frob_update_context (struct _Unwind_Context *context, +- _Unwind_FrameState *fs) +-{ +- const int reg = DWARF_REGNUM_AARCH64_RA_STATE; +- int ra_signed; +- if (fs->regs.how[reg] == REG_UNSAVED) +- ra_signed = fs->regs.reg[reg].loc.offset & 0x1; +- else +- ra_signed = _Unwind_GetGR (context, reg) & 0x1; +- if (ra_signed) +- /* The flag is used for re-authenticating EH handler's address. */ +- context->flags |= RA_SIGNED_BIT; +- else +- context->flags &= ~RA_SIGNED_BIT; + +- return; ++ return addr; + } + + #endif /* defined AARCH64_UNWIND_H && defined __ILP32__ */ +--- libgcc/unwind-dw2.c ++++ libgcc/unwind-dw2.c +@@ -139,7 +139,4 @@ struct _Unwind_Context + #define EXTENDED_CONTEXT_BIT ((~(_Unwind_Word) 0 >> 2) + 1) +- /* Bit reserved on AArch64, return address has been signed with A or B +- key. */ +-#define RA_SIGNED_BIT ((~(_Unwind_Word) 0 >> 3) + 1) + _Unwind_Word flags; + /* 0 for now, can be increased when further fields are added to + struct _Unwind_Context. */ +@@ -1204,10 +1203,15 @@ execute_cfa_program (const unsigned char *insn_ptr, + case DW_CFA_GNU_window_save: + #if defined (__aarch64__) && !defined (__ILP32__) + /* This CFA is multiplexed with Sparc. On AArch64 it's used to toggle +- return address signing status. */ ++ return address signing status. The REG_UNDEFINED/UNSAVED states ++ mean RA signing is enabled/disabled. */ + reg = DWARF_REGNUM_AARCH64_RA_STATE; +- gcc_assert (fs->regs.how[reg] == REG_UNSAVED); +- fs->regs.reg[reg].loc.offset ^= 1; ++ gcc_assert (fs->regs.how[reg] == REG_UNSAVED ++ || fs->regs.how[reg] == REG_UNDEFINED); ++ if (fs->regs.how[reg] == REG_UNSAVED) ++ fs->regs.how[reg] = REG_UNDEFINED; ++ else ++ fs->regs.how[reg] = REG_UNSAVED; + #else + /* ??? Hardcoded for SPARC register window configuration. */ + if (__LIBGCC_DWARF_FRAME_REGISTERS__ >= 32) + + diff --git a/gcc13-pr108047.patch b/gcc13-pr108047.patch deleted file mode 100644 index cb4b8d1..0000000 --- a/gcc13-pr108047.patch +++ /dev/null @@ -1,81 +0,0 @@ -2023-01-06 Jakub Jelinek - - PR c++/105838 - PR c++/108047 - PR c++/108266 - * call.cc (maybe_init_list_as_range): Always return NULL_TREE if - processing_template_decl. - - * g++.dg/tree-ssa/initlist-opt2.C: New test. - * g++.dg/tree-ssa/initlist-opt3.C: New test. - ---- gcc/cp/call.cc.jj 2022-12-15 09:24:44.265935297 +0100 -+++ gcc/cp/call.cc 2023-01-06 11:24:44.837270905 +0100 -@@ -4285,7 +4285,8 @@ maybe_init_list_as_array (tree elttype, - static tree - maybe_init_list_as_range (tree fn, tree expr) - { -- if (BRACE_ENCLOSED_INITIALIZER_P (expr) -+ if (!processing_template_decl -+ && BRACE_ENCLOSED_INITIALIZER_P (expr) - && is_list_ctor (fn) - && decl_in_std_namespace_p (fn)) - { ---- gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C.jj 2023-01-06 11:53:13.160432870 +0100 -+++ gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C 2023-01-06 11:53:44.561976302 +0100 -@@ -0,0 +1,31 @@ -+// PR c++/105838 -+// { dg-additional-options -fdump-tree-gimple } -+// { dg-do compile { target c++11 } } -+ -+// Test that we do range-initialization from const char *. -+// { dg-final { scan-tree-dump {_M_range_initialize} "gimple" } } -+ -+#include -+#include -+ -+void g (const void *); -+ -+template -+void f (const char *p) -+{ -+ std::vector lst = { -+ "aahing", "aaliis", "aarrgh", "abacas", "abacus", "abakas", "abamps", "abands", "abased", "abaser", "abases", "abasia", -+ "abated", "abater", "abates", "abatis", "abator", "abattu", "abayas", "abbacy", "abbess", "abbeys", "abbots", "abcees", -+ "abdabs", "abduce", "abduct", "abears", "abeigh", "abeles", "abelia", "abends", "abhors", "abided", "abider", "abides", -+ "abject", "abjure", "ablate", "ablaut", "ablaze", "ablest", "ablets", "abling", "ablins", "abloom", "ablush", "abmhos", -+ "aboard", "aboded", "abodes", "abohms", "abolla", "abomas", "aboral", "abords", "aborne", "aborts", "abound", "abouts", -+ "aboves", "abrade", "abraid", "abrash", "abrays", "abrazo", "abrege", "abrins", "abroad", "abrupt", "abseil", "absent", -+ }; -+ -+ g(&lst); -+} -+ -+void h (const char *p) -+{ -+ f<0> (p); -+} ---- gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C.jj 2023-01-06 11:56:36.981469370 +0100 -+++ gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C 2023-01-06 11:56:09.984861898 +0100 -@@ -0,0 +1,21 @@ -+// PR c++/108266 -+// { dg-do compile { target c++11 } } -+ -+#include -+#include -+ -+struct S { S (const char *); }; -+void bar (std::vector); -+ -+template -+void -+foo () -+{ -+ bar ({"", ""}); -+} -+ -+void -+baz () -+{ -+ foo<0> (); -+} diff --git a/sources b/sources index bedf541..222a90d 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-13.0.0-20230106.tar.xz) = 60373be7d19db8abfcf72e8d4cabf1df7fd77effea746e08f31fff062e9a19789d85293c919639ef7cce17955706831f9b0b9f90db1439c79e14553e981f601d +SHA512 (gcc-13.0.0-20230112.tar.xz) = d96893d7cfb4b49e0cb7a53ee486607024553a84cdb701435290c6d1fc2692d0ab92111272664fc94cf6a41b8c67210b8d41fcb76a70b3adc5de5bbcce487228 SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz) = b099246fe4a5d0a372cdaee5da49083df5b2f4440a4e83961600cdf22d37da50c99ce9ae46b769f188a67034ee038cf863260988fc9d594e8e5fb3905a381dec SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6 From 1c048c23520cfb5d2d6a4535e2baa59a6d15a76e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 12 Jan 2023 19:58:02 +0100 Subject: [PATCH 14/14] 13.0.0-0.8 --- gcc13-pr107678.patch | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc13-pr107678.patch b/gcc13-pr107678.patch index af335f3..3cf29ac 100644 --- a/gcc13-pr107678.patch +++ b/gcc13-pr107678.patch @@ -6,7 +6,8 @@ address signing state in REG_UNSAVED and REG_UNDEFINED. 2023-01-10 Wilco Dijkstra PR target/107678 - * unwind-dw2.c (execute_cfa_program): Use REG_UNSAVED/UNDEFINED + * unwind-dw2.c (RA_SIGNED_BIT): Remove. + * unwind-dw2-execute_cfa.h: Use REG_UNSAVED/UNDEFINED to encode return address signing state. * config/aarch64/aarch64-unwind.h (aarch64_demangle_return_addr) Check current return address signing state. @@ -79,7 +80,9 @@ address signing state in REG_UNSAVED and REG_UNDEFINED. #endif /* defined AARCH64_UNWIND_H && defined __ILP32__ */ --- libgcc/unwind-dw2.c +++ libgcc/unwind-dw2.c -@@ -139,7 +139,4 @@ struct _Unwind_Context +@@ -137,9 +137,6 @@ struct _Unwind_Context + #define SIGNAL_FRAME_BIT ((~(_Unwind_Word) 0 >> 1) + 1) + /* Context which has version/args_size/by_value fields. */ #define EXTENDED_CONTEXT_BIT ((~(_Unwind_Word) 0 >> 2) + 1) - /* Bit reserved on AArch64, return address has been signed with A or B - key. */ @@ -87,7 +90,9 @@ address signing state in REG_UNSAVED and REG_UNDEFINED. _Unwind_Word flags; /* 0 for now, can be increased when further fields are added to struct _Unwind_Context. */ -@@ -1204,10 +1203,15 @@ execute_cfa_program (const unsigned char *insn_ptr, +--- libgcc/unwind-dw2-execute_cfa.h 2023-01-02 17:53:56.003021412 +0100 ++++ libgcc/unwind-dw2-execute_cfa.h 2023-01-12 19:52:05.456327742 +0100 +@@ -278,10 +278,15 @@ case DW_CFA_GNU_window_save: #if defined (__aarch64__) && !defined (__ILP32__) /* This CFA is multiplexed with Sparc. On AArch64 it's used to toggle @@ -106,5 +111,3 @@ address signing state in REG_UNSAVED and REG_UNDEFINED. #else /* ??? Hardcoded for SPARC register window configuration. */ if (__LIBGCC_DWARF_FRAME_REGISTERS__ >= 32) - -