The package rpms/gcc.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/gcc.git/commit/?id=d831ac9ded9f251af....
Change: +%ifarch x86_64 aarch64
Thanks.
Full change: ============
commit f4a22ed0935aa1f4a0a68b1a171fb112b3d00911 Author: Jakub Jelinek jakub@redhat.com Date: Sat Mar 29 19:16:28 2025 +0100
15.0.1-0.11
diff --git a/gcc.spec b/gcc.spec index 9f666cd..ec5e4d5 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1125,6 +1125,8 @@ enablelgo= enablelada= enablelobjc= enableld= +enablelm2= +enablelcob= %if %{build_objc} enablelobjc=,objc,obj-c++ %endif @@ -1141,7 +1143,7 @@ enableld=,d enablelm2=,m2 %endif %if %{build_cobol} -enablelm2=,cobol +enablelcob=,cobol %endif offloadtgts= %if %{build_offload_nvptx} @@ -1321,7 +1323,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}${enablelm2},lto \ + --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld}${enablelm2}${enablelcob},lto \ $CONFIGURE_OPTS
%ifarch sparc sparcv9 sparc64 @@ -2729,7 +2731,6 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2copyintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2mediaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2minmaxintrin.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2roundingintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2satcvtintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movrsintrin.h %endif
commit d831ac9ded9f251aff91736b3877b7d4e129a5ca Author: Jakub Jelinek jakub@redhat.com Date: Sat Mar 29 13:04:21 2025 +0100
15.0.1-0.11
diff --git a/.gitignore b/.gitignore index 5e47446..c887ae7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /gcc-15.0.1-20250225.tar.xz /gcc-15.0.1-20250301.tar.xz /gcc-15.0.1-20250313.tar.xz +/gcc-15.0.1-20250329.tar.xz diff --git a/gcc.spec b/gcc.spec index fe1f90b..9f666cd 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20250313 -%global gitrev 4fe62f20633b8e1bf4d776d7f4644ce485efd0b2 +%global DATE 20250329 +%global gitrev 3d14ac28b1c0233636b21171759b471b39ecee35 %global gcc_version 15.0.1 %global gcc_major 15 # Note, gcc_release must be integer, if you want to add suffixes to @@ -37,6 +37,7 @@ %global build_go 0 %global build_d 0 %global build_m2 0 +%global build_cobol 0 %else %ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64 riscv64 %global build_ada 1 @@ -59,6 +60,11 @@ %else %global build_m2 0 %endif +%ifarch x86_64 aarch64 +%global build_cobol 1 +%else +%global build_cobol 0 +%endif %endif %ifarch %{ix86} x86_64 ia64 ppc64le %global build_libquadmath 1 @@ -143,7 +149,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.10%{?dist} +Release: %{gcc_release}.11%{?dist} # License notes for some of the less obvious ones: # gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para # isl: MIT, BSD-2-Clause @@ -299,6 +305,9 @@ Patch9: gcc15-Wno-format-security.patch Patch10: gcc15-rh1574936.patch Patch11: gcc15-d-shared-libphobos.patch Patch12: gcc15-pr119006.patch +Patch13: gcc15-pr119291-1.patch +Patch14: gcc15-pr119291-2.patch +Patch15: gcc15-pr119327.patch
Patch50: isl-rh2155127.patch
@@ -547,6 +556,32 @@ Requires: gcc-gm2 = %{version}-%{release} %description -n libgm2-static This package contains static Modula-2 libraries.
+%package gcobol +Summary: COBOL support +Requires: gcc = %{version}-%{release} +Requires: libgcobol = %{version}-%{release} +Autoreq: true + +%description gcobol +The gcc-gcobol package provides support for compiling COBOL +programs with the GNU Compiler Collection. + +%package -n libgcobol +Summary: COBOL runtime +Autoreq: true + +%description -n libgcobol +This package contains COBOL shared libraries which are needed to run +COBOL dynamically linked programs. + +%package -n libgcobol-static +Summary: Static COBOL libraries +Requires: libgcobol = %{version}-%{release} +Requires: gcc-gcobol = %{version}-%{release} + +%description -n libgcobol-static +This package contains static COBOL libraries. + %package -n libgomp Summary: GCC OpenMP v4.5 shared support library
@@ -1105,6 +1140,9 @@ enableld=,d %if %{build_m2} enablelm2=,m2 %endif +%if %{build_cobol} +enablelm2=,cobol +%endif offloadtgts= %if %{build_offload_nvptx} offloadtgts=nvptx-none @@ -1339,7 +1377,7 @@ cd ../..
# Copy various doc files here and there cd .. -mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2,libgdiagnostics-devel} +mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2,libgdiagnostics-devel,gcobol,libgcobol} 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}
@@ -1375,10 +1413,21 @@ done) cp -p $i ../rpm.doc/libgm2/$i.libgm2 done) %endif +%if %{build_cobol} +(cd gcc/cobol; for i in ChangeLog* LICENSE; do + cp -p $i ../../rpm.doc/gcobol/$i.gcobol +done +cp -p LICENSE ../../rpm.doc/libgcobol/$i.libgcobol) +(cd libgcobol; for i in ChangeLog*; do + cp -p $i ../rpm.doc/libgcobol/$i.libgcobol +done) +%endif %if %{build_libquadmath} (cd libquadmath; for i in ChangeLog* COPYING.LIB; do cp -p $i ../rpm.doc/libquadmath/$i.libquadmath -done) +done; +sed -n '/==========/,/==========/{/==========/d;s/^ * *//p}' math/cosq.c \ + > ../rpm.doc/libquadmath/LICENSE.SunPro) %endif %if %{build_libitm} (cd libitm; for i in ChangeLog*; do @@ -1725,6 +1774,9 @@ for i in cor iso log min pim; do ln -sf ../../../libm2$i.so.20.* libm2$i.so done %endif +%if %{build_cobol} +ln -sf ../../../libgcobol.so.1.* libgcobol.so +%endif %if %{build_libitm} ln -sf ../../../libitm.so.1.* libitm.so %endif @@ -1760,6 +1812,9 @@ for i in cor iso log min pim; do ln -sf ../../../../%{_lib}/libm2$i.so.20.* libm2$i.so done %endif +%if %{build_cobol} +ln -sf ../../../../%{_lib}/libgcobol.so.1.* libgcobol.so +%endif %if %{build_libitm} ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so %endif @@ -1813,6 +1868,9 @@ for i in cor iso log min pim; do ln -sf ../../libm2$i.a m2/m2$i/ done %endif +%if %{build_cobol} +mv -f %{buildroot}%{_prefix}/%{_lib}/libgcobol.*a $FULLLPATH/ +%endif %if %{build_libitm} mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/ %endif @@ -1913,6 +1971,11 @@ for i in cor iso log min pim; do ln -sf ../../libm2$i.a 64/m2/m2$i/ done %endif +%if %{build_cobol} +rm -f libgcobol.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgcobol.so.1.* | sed 's,^.*libg,libg,'`' )' > libgcobol.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgcobol.so.1.* | sed 's,^.*libg,libg,'`' )' > 64/libgcobol.so +%endif %if %{build_libitm} rm -f libitm.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so @@ -1964,6 +2027,10 @@ for i in cor iso log min pim; do ln -sf ../lib64/libm2$i.a 64/libm2$i.a done %endif +%if %{build_cobol} +ln -sf lib32/libgcobol.a libgcobol.a +ln -sf ../lib64/libgcobol.a 64/libgcobol.a +%endif %if %{build_libitm} ln -sf lib32/libitm.a libitm.a ln -sf ../lib64/libitm.a 64/libitm.a @@ -2030,6 +2097,11 @@ for i in cor iso log min pim; do ln -sf ../../libm2$i.a 32/m2/m2$i/ done %endif +%if %{build_cobol} +rm -f libgcobol.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgcobol.so.1.* | sed 's,^.*libg,libg,'`' )' > libgcobol.so +#echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgcobol.so.1.* | sed 's,^.*libg,libg,'`' )' > 32/libgcobol.so +%endif %if %{build_libitm} rm -f libitm.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so @@ -2083,6 +2155,10 @@ for i in cor iso log min pim; do ln -sf lib64/libm2$i.a libm2$i.a done %endif +%if %{build_cobol} +ln -sf ../lib32/libgcobol.a 32/libgcobol.a +ln -sf lib64/libgcobol.a libgcobol.a +%endif %if %{build_libitm} ln -sf ../lib32/libitm.a 32/libitm.a ln -sf lib64/libitm.a libitm.a @@ -2132,6 +2208,9 @@ 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_cobol} +#ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgcobol.a 32/libgcobol.a +%endif %if %{build_libitm} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a %endif @@ -2172,7 +2251,7 @@ for d in . $FULLLSUBDIR; do -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.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 libsupc++.a \ + -o -name libsupc++.a -o -name libgcobol.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 @@ -2185,7 +2264,8 @@ strip -g `find . ( -name libgfortran.a -o -name libobjc.a -o -name libgomp.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 ) \ + -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \ + -o -name libgcobol.a ) \ -a -type f` popd chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* @@ -2203,6 +2283,9 @@ for i in cor iso log min pim; do chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.20.* done %endif +%if %{build_cobol} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgcobol.so.1.* +%endif %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* %endif @@ -3191,6 +3274,31 @@ end %endif %endif
+%if %{build_cobol} +%files gcobol +%{_prefix}/bin/gcobol +%{_prefix}/bin/gcobc +%{_mandir}/man1/gcobol.1* +%{_mandir}/man3/gcobol.3* +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cobol1 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcobol.so +%{_datadir}/gcobol +%doc rpm.doc/gcobol/* + +%files -n libgcobol +%{_prefix}/%{_lib}/libgcobol.so.1* +%doc rpm.doc/libgcobol/* + +%files -n libgcobol-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}/libgcobol.a +%endif + %if %{build_ada} %files gnat %{_prefix}/bin/gnat @@ -3659,6 +3767,47 @@ end %endif
%changelog +* Sat Mar 29 2025 Jakub Jelinek jakub@redhat.com 15.0.1-0.11 +- update from trunk + - PRs ada/119265, ada/119440, analyzer/119278, bootstrap/119513, c/116545, + c/118061, c/118765, c/119311, c/119350, c/119366, c++/101881, + c++/114525, c++/114992, c++/118104, c++/118920, c++/118961, + c++/119194, c++/119233, c++/119316, c++/119344, c++/119370, + c++/119378, c++/119379, cobol/119213, cobol/119214, cobol/119241, + cobol/119242, cobol/119244, cobol/119290, cobol/119301, cobol/119390, + d/117621, d/118545, debug/101533, driver/101544, fortran/60560, + fortran/85836, fortran/116706, fortran/118796, fortran/119272, + fortran/119338, fortran/119349, fortran/119380, fortran/119403, + fortran/119406, fortran/119419, gcov-profile/118442, ipa/98265, + ipa/116572, ipa/119147, ipa/119376, ipa/119484, libfortran/85836, + libgomp/96835, libitm/88319, libstdc++/101527, libstdc++/101587, + libstdc++/108487, libstdc++/111055, libstdc++/111138, + libstdc++/116440, libstdc++/117214, libstdc++/117983, + libstdc++/118699, libstdc++/119135, libstdc++/119282, + libstdc++/119358, libstdc++/119415, libstdc++/119429, + libstdc++/119469, libstdc++/119488, middle-end/93437, + middle-end/112938, middle-end/113546, middle-end/117811, + middle-end/118627, middle-end/118795, middle-end/119325, + modula2/115111, modula2/118045, modula2/118600, modula2/119449, + modula2/119504, other/42270, other/119218, other/119250, other/119510, + preprocessor/108900, rtl-optimization/118615, rtl-optimization/118914, + rtl-optimization/119285, rtl-optimization/119307, rust/119333, + target/55583, target/91614, target/92713, target/96226, target/98743, + target/101544, target/112980, target/117069, target/117092, + target/117452, target/118068, target/119010, target/119114, + target/119120, target/119172, target/119224, target/119235, + target/119270, target/119286, target/119355, target/119357, + target/119408, target/119421, target/119425, target/119428, + target/119450, target/119465, testsuite/113634, testsuite/113965, + testsuite/116163, testsuite/119220, testsuite/119382, + testsuite/119489, tree-optimization/37143, tree-optimization/105820, + tree-optimization/118616, tree-optimization/119155, + tree-optimization/119274, tree-optimization/119287, + tree-optimization/119389, tree-optimization/119417, + tree-optimization/119483 +- package gcc-gcobol on x86_64 and aarch64 so far +- turn unversioned obsoletes into versioned ones + * Thu Mar 13 2025 Jakub Jelinek jakub@redhat.com 15.0.1-0.10 - update from trunk - PRs analyzer/117262, c/60440, c/67301, c/112960, c/113515, c/117029, diff --git a/gcc15-pr119291-1.patch b/gcc15-pr119291-1.patch new file mode 100644 index 0000000..c9b37a0 --- /dev/null +++ b/gcc15-pr119291-1.patch @@ -0,0 +1,81 @@ +2025-03-28 Jakub Jelinek jakub@redhat.com + + PR rtl-optimization/119291 + * combine.cc (try_combine): For splitting of PARALLEL with + 2 independent SETs into i2 and i3 sets check reg_used_between_p + of the SET_DESTs rather than just modified_between_p. + + * gcc.c-torture/execute/pr119291.c: New test. + +--- gcc/combine.cc.jj 2025-03-25 09:34:33.469102343 +0100 ++++ gcc/combine.cc 2025-03-27 09:50:15.768567383 +0100 +@@ -4012,18 +4012,18 @@ try_combine (rtx_insn *i3, rtx_insn *i2, + rtx set1 = XVECEXP (newpat, 0, 1); + + /* Normally, it doesn't matter which of the two is done first, but +- one which uses any regs/memory set in between i2 and i3 can't +- be first. The PARALLEL might also have been pre-existing in i3, +- so we need to make sure that we won't wrongly hoist a SET to i2 +- that would conflict with a death note present in there, or would +- have its dest modified between i2 and i3. */ ++ one which uses any regs/memory set or used in between i2 and i3 ++ can't be first. The PARALLEL might also have been pre-existing ++ in i3, so we need to make sure that we won't wrongly hoist a SET ++ to i2 that would conflict with a death note present in there, or ++ would have its dest modified or used between i2 and i3. */ + if (!modified_between_p (SET_SRC (set1), i2, i3) + && !(REG_P (SET_DEST (set1)) + && find_reg_note (i2, REG_DEAD, SET_DEST (set1))) + && !(GET_CODE (SET_DEST (set1)) == SUBREG + && find_reg_note (i2, REG_DEAD, + SUBREG_REG (SET_DEST (set1)))) +- && !modified_between_p (SET_DEST (set1), i2, i3) ++ && !reg_used_between_p (SET_DEST (set1), i2, i3) + /* If I3 is a jump, ensure that set0 is a jump so that + we do not create invalid RTL. */ + && (!JUMP_P (i3) || SET_DEST (set0) == pc_rtx) +@@ -4038,7 +4038,7 @@ try_combine (rtx_insn *i3, rtx_insn *i2, + && !(GET_CODE (SET_DEST (set0)) == SUBREG + && find_reg_note (i2, REG_DEAD, + SUBREG_REG (SET_DEST (set0)))) +- && !modified_between_p (SET_DEST (set0), i2, i3) ++ && !reg_used_between_p (SET_DEST (set0), i2, i3) + /* If I3 is a jump, ensure that set1 is a jump so that + we do not create invalid RTL. */ + && (!JUMP_P (i3) || SET_DEST (set1) == pc_rtx) +--- gcc/testsuite/gcc.c-torture/execute/pr119291.c.jj 2025-03-27 09:48:01.917407084 +0100 ++++ gcc/testsuite/gcc.c-torture/execute/pr119291.c 2025-03-27 09:47:48.020598094 +0100 +@@ -0,0 +1,33 @@ ++/* PR rtl-optimization/119291 */ ++ ++int a; ++long c; ++ ++__attribute__((noipa)) void ++foo (int x) ++{ ++ if (x != 0) ++ __builtin_abort (); ++ a = 42; ++} ++ ++int ++main () ++{ ++ int e = 1; ++lab: ++ if (a < 2) ++ { ++ int b = e; ++ _Bool d = a != 0; ++ _Bool f = b != 0; ++ unsigned long g = -(d & f); ++ unsigned long h = c & g; ++ unsigned long i = ~c; ++ e = -(i & h); ++ c = e != 0; ++ a = ~e + b; ++ foo (e); ++ goto lab; ++ } ++} diff --git a/gcc15-pr119291-2.patch b/gcc15-pr119291-2.patch new file mode 100644 index 0000000..8e8e51f --- /dev/null +++ b/gcc15-pr119291-2.patch @@ -0,0 +1,51 @@ +2025-03-28 Jakub Jelinek jakub@redhat.com + + * combine.cc (try_combine): Sets which satisfy set_noop_p can go + to i2 unless i3 is a jump and the other set is not. + +--- gcc/combine.cc.jj 2025-03-28 11:44:15.491458700 +0100 ++++ gcc/combine.cc 2025-03-28 12:11:49.505835983 +0100 +@@ -4017,13 +4017,14 @@ try_combine (rtx_insn *i3, rtx_insn *i2, + in i3, so we need to make sure that we won't wrongly hoist a SET + to i2 that would conflict with a death note present in there, or + would have its dest modified or used between i2 and i3. */ +- if (!modified_between_p (SET_SRC (set1), i2, i3) +- && !(REG_P (SET_DEST (set1)) +- && find_reg_note (i2, REG_DEAD, SET_DEST (set1))) +- && !(GET_CODE (SET_DEST (set1)) == SUBREG +- && find_reg_note (i2, REG_DEAD, +- SUBREG_REG (SET_DEST (set1)))) +- && !reg_used_between_p (SET_DEST (set1), i2, i3) ++ if ((set_noop_p (set1) ++ || (!modified_between_p (SET_SRC (set1), i2, i3) ++ && !(REG_P (SET_DEST (set1)) ++ && find_reg_note (i2, REG_DEAD, SET_DEST (set1))) ++ && !(GET_CODE (SET_DEST (set1)) == SUBREG ++ && find_reg_note (i2, REG_DEAD, ++ SUBREG_REG (SET_DEST (set1)))) ++ && !reg_used_between_p (SET_DEST (set1), i2, i3))) + /* If I3 is a jump, ensure that set0 is a jump so that + we do not create invalid RTL. */ + && (!JUMP_P (i3) || SET_DEST (set0) == pc_rtx) +@@ -4032,13 +4033,14 @@ try_combine (rtx_insn *i3, rtx_insn *i2, + newi2pat = set1; + newpat = set0; + } +- else if (!modified_between_p (SET_SRC (set0), i2, i3) +- && !(REG_P (SET_DEST (set0)) +- && find_reg_note (i2, REG_DEAD, SET_DEST (set0))) +- && !(GET_CODE (SET_DEST (set0)) == SUBREG +- && find_reg_note (i2, REG_DEAD, +- SUBREG_REG (SET_DEST (set0)))) +- && !reg_used_between_p (SET_DEST (set0), i2, i3) ++ else if ((set_noop_p (set0) ++ || (!modified_between_p (SET_SRC (set0), i2, i3) ++ && !(REG_P (SET_DEST (set0)) ++ && find_reg_note (i2, REG_DEAD, SET_DEST (set0))) ++ && !(GET_CODE (SET_DEST (set0)) == SUBREG ++ && find_reg_note (i2, REG_DEAD, ++ SUBREG_REG (SET_DEST (set0)))) ++ && !reg_used_between_p (SET_DEST (set0), i2, i3))) + /* If I3 is a jump, ensure that set1 is a jump so that + we do not create invalid RTL. */ + && (!JUMP_P (i3) || SET_DEST (set1) == pc_rtx) diff --git a/gcc15-pr119327.patch b/gcc15-pr119327.patch new file mode 100644 index 0000000..a9fdd77 --- /dev/null +++ b/gcc15-pr119327.patch @@ -0,0 +1,47 @@ +2025-03-26 Jakub Jelinek jakub@redhat.com + + PR target/119327 + * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also + OPTION_MASK_SAVE_TOC_INDIRECT differences. + + * g++.dg/opt/pr119327.C: New test. + +--- gcc/config/rs6000/rs6000.cc.jj 2025-03-18 14:56:37.990023768 +0100 ++++ gcc/config/rs6000/rs6000.cc 2025-03-25 13:21:33.174568536 +0100 +@@ -25765,10 +25765,13 @@ rs6000_can_inline_p (tree caller, tree c + } + } + +- /* Ignore -mpower8-fusion and -mpower10-fusion options for inlining +- purposes. */ +- callee_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION); +- explicit_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION); ++ /* Ignore -mpower8-fusion, -mpower10-fusion and -msave-toc-indirect options ++ for inlining purposes. */ ++ HOST_WIDE_INT ignored_isas = (OPTION_MASK_P8_FUSION ++ | OPTION_MASK_P10_FUSION ++ | OPTION_MASK_SAVE_TOC_INDIRECT); ++ callee_isa &= ~ignored_isas; ++ explicit_isa &= ~ignored_isas; + + /* The callee's options must be a subset of the caller's options, i.e. + a vsx function may inline an altivec function, but a no-vsx function +--- gcc/testsuite/g++.dg/opt/pr119327.C.jj 2025-03-25 13:24:45.129988649 +0100 ++++ gcc/testsuite/g++.dg/opt/pr119327.C 2025-03-25 13:25:09.513661266 +0100 +@@ -0,0 +1,16 @@ ++// PR target/119327 ++// { dg-do compile { target c++11 } } ++// { dg-options "-Os" } ++ ++#pragma GCC optimize "fp-contract=off" ++ ++template <class T> ++void ++foo (T f) ++{ ++ f (); ++} ++ ++struct S { ++ S () { [] {}; foo ([] __attribute__((always_inline)) {}); } ++} s; diff --git a/sources b/sources index 13bc153..cd6e23e 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-15.0.1-20250313.tar.xz) = 09aeb1bdab2a8bb6081262e8a2a3141e0be93e03ac0895179de2b8d23e1307e0124ed157a8ddc6161fb61385384fe254100502bf08f35a187f50e9c70c677cc4 +SHA512 (gcc-15.0.1-20250329.tar.xz) = 5180ad4bef3acec74fa713043270eebc6504dec4812ec150caf46715486215a48c561c26cdad21a93b15bed9d7fe79839769e7afb0c4e657b5c37158e2d76d75 SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808 SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
commit 6a75c861d441eff5516c01a308f3a0b249fadde2 Author: Siddhesh Poyarekar siddhesh@gotplt.org Date: Mon Mar 3 10:33:50 2025 -0500
Add version for libmudflap, etc.
Fix warnings that fedpkg prep throws whenever gcc sources are prepped.
diff --git a/gcc.spec b/gcc.spec index 75ae5a6..fe1f90b 100644 --- a/gcc.spec +++ b/gcc.spec @@ -352,17 +352,17 @@ Autoreq: false %if !%{build_ada} Obsoletes: libgnat < %{version}-%{release} %endif -Obsoletes: libmudflap -Obsoletes: libmudflap-devel -Obsoletes: libmudflap-static +Obsoletes: libmudflap < %{version}-%{release} +Obsoletes: libmudflap-devel < %{version}-%{release} +Obsoletes: libmudflap-static < %{version}-%{release} Obsoletes: libgcj < %{version}-%{release} Obsoletes: libgcj-devel < %{version}-%{release} Obsoletes: libgcj-src < %{version}-%{release} %ifarch %{ix86} x86_64 -Obsoletes: libcilkrts -Obsoletes: libcilkrts-static -Obsoletes: libmpx -Obsoletes: libmpx-static +Obsoletes: libcilkrts < %{version}-%{release} +Obsoletes: libcilkrts-static < %{version}-%{release} +Obsoletes: libmpx < %{version}-%{release} +Obsoletes: libmpx-static < %{version}-%{release} %endif
%description -n libgcc
arch-excludes@lists.fedoraproject.org