Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e6710e8c4c | ||
|
a34d04e90a | ||
|
5f42e0e25f | ||
|
cea7e675cb | ||
|
d4a4a65e5b | ||
|
225dcba4e6 | ||
|
88f2f199fa | ||
|
1ec8a8858d | ||
|
14e354e0a1 |
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -2,3 +2,5 @@
|
||||
/isl-0.24.tar.bz2
|
||||
/newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz
|
||||
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
|
||||
/gcc-14.2.1-20240801.tar.xz
|
||||
/gcc-14.2.1-20250110.tar.xz
|
||||
|
@ -6,7 +6,7 @@ index b64e71dae22..5bf47b20820 100644
|
||||
jump threading opportunities. Skip the later tests on aarch64. */
|
||||
/* { dg-final { scan-tree-dump-not "Jumps threaded" "dom3" { target { ! aarch64*-*-* } } } } */
|
||||
/* { dg-final { scan-tree-dump "Jumps threaded: 9" "thread2" { target { ! aarch64*-*-* } } } } */
|
||||
-/* { dg-final { scan-tree-dump "Jumps threaded: 18" "thread2" { target { aarch64*-*-* } } } } */
|
||||
-/* { dg-final { scan-tree-dump "Jumps threaded: 17" "thread2" { target { aarch64*-*-* } } } } */
|
||||
|
||||
enum STATE {
|
||||
S0=0,
|
||||
|
120
gcc.spec
120
gcc.spec
@ -5,13 +5,13 @@ BuildRequires: scl-utils-build
|
||||
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
|
||||
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
|
||||
%{?scl:%scl_package gcc}
|
||||
%global DATE 20240801
|
||||
%global gitrev 43d4666d3d94934f11857a2fb9122c575be81801
|
||||
%global DATE 20250110
|
||||
%global gitrev e525669e462dd777a1af9932fe9188937acdeb69
|
||||
%global gcc_version 14.2.1
|
||||
%global gcc_major 14
|
||||
# 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 1
|
||||
%global gcc_release 10
|
||||
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
|
||||
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
|
||||
%global isl_version 0.24
|
||||
@ -152,7 +152,7 @@ BuildRequires: scl-utils-build
|
||||
Summary: GCC version %{gcc_major}
|
||||
Name: %{?scl_prefix}gcc
|
||||
Version: %{gcc_version}
|
||||
Release: %{gcc_release}.1%{?dist}
|
||||
Release: %{gcc_release}%{?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
|
||||
@ -333,6 +333,7 @@ Patch9: gcc14-Wno-format-security.patch
|
||||
Patch10: gcc14-rh1574936.patch
|
||||
Patch11: gcc14-d-shared-libphobos.patch
|
||||
Patch12: gcc14-pr101523.patch
|
||||
Patch13: gcc14-pr118509.patch
|
||||
|
||||
Patch50: isl-rh2155127.patch
|
||||
|
||||
@ -360,6 +361,8 @@ Patch3015: 0018-Use-CXX11-ABI.patch
|
||||
Patch3017: 0020-more-fixes.patch
|
||||
Patch3018: 0021-libstdc++-disable-tests.patch
|
||||
|
||||
Patch4000: gcc14-RHEL-49861.patch
|
||||
|
||||
%if 0%{?rhel} == 9
|
||||
%global nonsharedver 110
|
||||
%endif
|
||||
@ -444,6 +447,8 @@ Summary: Fortran support for GCC %{gcc_major}
|
||||
Requires: %{?scl_prefix}gcc%{!?scl:13} = %{version}-%{release}
|
||||
Requires: libgfortran >= 8.1.1
|
||||
Autoreq: true
|
||||
Requires(post): /sbin/install-info
|
||||
Requires(preun): /sbin/install-info
|
||||
|
||||
%if %{build_libquadmath}
|
||||
%if 0%{!?scl:1}
|
||||
@ -680,6 +685,7 @@ so that there cannot be any synchronization problems.
|
||||
%patch -P10 -p0 -b .rh1574936~
|
||||
%patch -P11 -p0 -b .d-shared-libphobos~
|
||||
%patch -P12 -p1 -b .pr101523~
|
||||
%patch -P13 -p0 -b .pr118509~
|
||||
|
||||
%patch -P100 -p1 -b .fortran-fdec-duplicates~
|
||||
|
||||
@ -720,6 +726,9 @@ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m
|
||||
%patch -P3017 -p1 -b .dts-test-17~
|
||||
%patch -P3018 -p1 -b .dts-test-18~
|
||||
|
||||
# Bugfix backports.
|
||||
%patch -P4000 -p1 -b .RHEL-49861~
|
||||
|
||||
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
|
||||
|
||||
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
|
||||
@ -738,10 +747,8 @@ echo 'TM_H += $(srcdir)/config/rs6000/rs6000-modes.h' >> gcc/config/rs6000/t-rs6
|
||||
|
||||
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
|
||||
|
||||
sed -i -e '/ldp_fusion/s/Init(1)/Init(0)/' gcc/config/aarch64/aarch64.opt
|
||||
|
||||
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
|
||||
sed -i -e 's/context->report_bug = false;/context->report_bug = true;/' gcc/diagnostic.cc
|
||||
sed -i -e 's/m_report_bug = false;/m_report_bug = true;/' gcc/diagnostic.cc
|
||||
|
||||
%ifarch ppc
|
||||
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
|
||||
@ -776,6 +783,10 @@ rm -rf libgomp/testsuite/libgomp.fortran/pr90030.f90
|
||||
rm -f libstdc++-v3/testsuite/30_threads/future/members/poll.cc
|
||||
%endif
|
||||
|
||||
# Disable jQuery use (CVE-2020-11023).
|
||||
sed -i '/^SEARCHENGINE/s/YES/NO/' libstdc++-v3/doc/doxygen/user.cfg.in
|
||||
sed -i '/^GENERATE_TREEVIEW/s/YES/NO/' libstdc++-v3/doc/doxygen/user.cfg.in
|
||||
|
||||
%build
|
||||
|
||||
# Undo the broken autoconf change in recent Fedora versions
|
||||
@ -1030,20 +1041,6 @@ make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z
|
||||
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now profiledbootstrap
|
||||
%endif
|
||||
|
||||
echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
%{oformat}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \
|
||||
> %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so
|
||||
|
||||
%if 0
|
||||
# Relink libcc1 against -lstdc++_nonshared:
|
||||
sed -i -e '/^postdeps/s/-lstdc++/-lstdc++_system/' libcc1/libtool
|
||||
rm -f libcc1/libcc1.la
|
||||
make -C libcc1 libcc1.la
|
||||
%endif
|
||||
|
||||
CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`"
|
||||
CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`"
|
||||
|
||||
@ -1312,6 +1309,9 @@ cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
|
||||
mkdir -p %{buildroot}%{_mandir}/man3
|
||||
cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
|
||||
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
|
||||
# We don't want to ship jQuery in the libstdc++-docs package.
|
||||
find ../rpm.doc/libstdc++-v3 -name jquery.js | xargs rm
|
||||
find ../rpm.doc/libstdc++-v3/html -name '*.html' | xargs sed -i '/<script type="text.javascript" src="jquery.js"><.script>/d'
|
||||
%endif
|
||||
|
||||
%ifarch sparcv9 sparc64
|
||||
@ -1422,11 +1422,18 @@ echo '/* GNU ld script */
|
||||
%{oformat}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so
|
||||
|
||||
%define libstdcxx_so %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6
|
||||
%define libstdcxx_so_link INPUT ( %{libstdcxx_so} -lstdc++_nonshared AS_NEEDED (%{libstdcxx_so}) )
|
||||
%define libstdcxx64_so %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6
|
||||
%define libstdcxx64_so_link INPUT ( %{libstdcxx64_so} -lstdc++_nonshared AS_NEEDED (%{libstdcxx64_so}) )
|
||||
%define libstdcxx32_so %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6
|
||||
%define libstdcxx32_so_link INPUT ( %{libstdcxx32_so} -lstdc++_nonshared AS_NEEDED (%{libstdcxx32_so}) )
|
||||
|
||||
echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
%{oformat}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so
|
||||
%{libstdcxx_so_link}' > libstdc++.so
|
||||
rm -f libgfortran.so
|
||||
echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
@ -1522,7 +1529,7 @@ echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
%{oformat2}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so
|
||||
%{libstdcxx64_so_link}' > 64/libstdc++.so
|
||||
rm -f 64/libgfortran.so
|
||||
echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
@ -1610,7 +1617,7 @@ echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
%{oformat2}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so
|
||||
%{libstdcxx32_so_link}' > 32/libstdc++.so
|
||||
rm -f 32/libgfortran.so
|
||||
echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
@ -1910,7 +1917,7 @@ echo '/* GNU ld script
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
%{oformat}
|
||||
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \
|
||||
%{libstdcxx_so_link}' \
|
||||
> %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so
|
||||
cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
|
||||
%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a
|
||||
@ -2787,6 +2794,69 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed May 28 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 14.2.1-10
|
||||
- Put the libstdc++ AS_NEEDED in the right places (RHEL-84606)
|
||||
|
||||
* Thu May 22 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 14.2.1-9
|
||||
- Add AS_NEEDED libstdc++.so.6 when only needed through libstdc++_nonshared
|
||||
(RHEL-84606)
|
||||
|
||||
* Thu May 22 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 14.2.1-8
|
||||
- libstdc++: Fix -Warray-bounds warning in std::vector<bool> (RHEL-49861)
|
||||
|
||||
* Fri Feb 7 2025 Marek Polacek <polacek@redhat.com> 14.2.1-7.1
|
||||
- disable jQuery use, don't ship jquery.js (CVE-2020-11023, RHEL-78284)
|
||||
|
||||
* Wed Jan 22 2025 Marek Polacek <polacek@redhat.com> 14.2.1-7
|
||||
- update from releases/gcc-14 branch (RHEL-74062)
|
||||
- PRs ada/113036, ada/113868, ada/115917, ada/117328, ada/117996,
|
||||
analyzer/115724, c/117641, c/117745, c/117802, c++/100358, c++/101463,
|
||||
c++/102594, c++/109859, c++/113108, c++/114854, c++/115008,
|
||||
c++/115430, c++/115657, c++/116108, c++/116634, c++/117158,
|
||||
c++/117317, c++/117614, c++/117615, c++/117792, c++/117825,
|
||||
c++/117845, c++/117880, c++/117925, c++/117985, c++/118060,
|
||||
c++/118069, driver/117942, fortran/84674, fortran/84869,
|
||||
fortran/105054, fortran/109105, fortran/109345, fortran/115070,
|
||||
fortran/115348, fortran/116388, fortran/117730, fortran/117763,
|
||||
fortran/117774, fortran/117791, fortran/117797, fortran/117819,
|
||||
fortran/117820, fortran/117843, fortran/117897, libgomp/117851,
|
||||
libstdc++/89624, libstdc++/106212, libstdc++/106676, libstdc++/108236,
|
||||
libstdc++/109517, libstdc++/109976, libstdc++/112349,
|
||||
libstdc++/112641, libstdc++/117520, libstdc++/117560,
|
||||
libstdc++/117822, libstdc++/117962, libstdc++/117966,
|
||||
libstdc++/118035, libstdc++/118093, middle-end/43374,
|
||||
middle-end/102674, middle-end/116997, middle-end/117433,
|
||||
middle-end/117458, middle-end/117459, middle-end/117847,
|
||||
middle-end/118024, modula2/114529, modula2/115003, modula2/115057,
|
||||
modula2/115164, modula2/115276, modula2/115328, modula2/115536,
|
||||
modula2/115540, modula2/115804, modula2/115823, modula2/115957,
|
||||
modula2/116048, modula2/116181, modula2/116378, modula2/116557,
|
||||
modula2/116918, modula2/117120, modula2/117371, modula2/117555,
|
||||
modula2/117660, modula2/117904, modula2/117948, other/116603,
|
||||
preprocessor/117118, rtl-optimization/113994, rtl-optimization/116799,
|
||||
rtl-optimization/117095, sanitizer/117960, target/64242,
|
||||
target/114801, target/114942, target/116371, target/116629,
|
||||
target/116999, target/117045, target/117105, target/117304,
|
||||
target/117357, target/117408, target/117418, target/117443,
|
||||
target/117500, target/117525, target/117562, target/117564,
|
||||
target/117642, target/117659, target/117675, target/117744,
|
||||
target/117926, testsuite/103298, testsuite/109360,
|
||||
tree-optimization/94589, tree-optimization/112376,
|
||||
tree-optimization/116463, tree-optimization/117142,
|
||||
tree-optimization/117254, tree-optimization/117307,
|
||||
tree-optimization/117333, tree-optimization/117398,
|
||||
tree-optimization/117417, tree-optimization/117439,
|
||||
tree-optimization/117574, tree-optimization/117594,
|
||||
tree-optimization/117612, tree-optimization/117912
|
||||
- fix up -freport-bug default (#2330362, RHEL-73476)
|
||||
- revert -mearly-ldp-fusion and -mlate-ldp-fusion default to enabled on
|
||||
aarch64 to match upstream (RHEL-74058)
|
||||
- consider TARGET_EXPR invariant like SAVE_EXPR (PR c++/118509)
|
||||
- have gfortran require install-info (RHEL-76087)
|
||||
|
||||
* Thu Aug 22 2024 Marek Polacek <polacek@redhat.com> 14.2.1-1.2
|
||||
- bump NVR (RHEL-53492)
|
||||
|
||||
* Tue Aug 13 2024 Marek Polacek <polacek@redhat.com> 14.2.1-1.1
|
||||
- do not hide _ZSt21ios_base_library_initv
|
||||
|
||||
|
81
gcc14-RHEL-49861.patch
Normal file
81
gcc14-RHEL-49861.patch
Normal file
@ -0,0 +1,81 @@
|
||||
From 9d5baaa92c6609191fd2488389562ac1ad1f0fb2 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Wakely <jwakely@redhat.com>
|
||||
Date: Fri, 28 Mar 2025 15:41:41 +0000
|
||||
Subject: [PATCH] libstdc++: Fix -Warray-bounds warning in std::vector<bool>
|
||||
[PR110498]
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In this case, we need to tell the compiler that the current size is not
|
||||
larger than the new size so that all the existing elements can be copied
|
||||
to the new storage. This avoids bogus warnings about overflowing the new
|
||||
storage when the compiler can't tell that that cannot happen.
|
||||
|
||||
We might as well also hoist the loads of begin() and end() before the
|
||||
allocation too. All callers will have loaded at least begin() before
|
||||
calling _M_reallocate.
|
||||
|
||||
libstdc++-v3/ChangeLog:
|
||||
|
||||
PR libstdc++/110498
|
||||
* include/bits/vector.tcc (vector<bool, A>::_M_reallocate):
|
||||
Hoist loads of begin() and end() before allocation and use them
|
||||
to state an unreachable condition.
|
||||
* testsuite/23_containers/vector/bool/capacity/110498.cc: New
|
||||
test.
|
||||
|
||||
Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
|
||||
|
||||
(cherry picked from commit aa3aaf2bfb8fcc17076993df4297597b68bc5f60)
|
||||
---
|
||||
libstdc++-v3/include/bits/vector.tcc | 5 ++++-
|
||||
.../vector/bool/capacity/110498.cc | 18 ++++++++++++++++++
|
||||
2 files changed, 22 insertions(+), 1 deletion(-)
|
||||
create mode 100644 libstdc++-v3/testsuite/23_containers/vector/bool/capacity/110498.cc
|
||||
|
||||
diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc
|
||||
index dafc2a31a8b..c59c15beacd 100644
|
||||
--- a/libstdc++-v3/include/bits/vector.tcc
|
||||
+++ b/libstdc++-v3/include/bits/vector.tcc
|
||||
@@ -1059,9 +1059,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
|
||||
vector<bool, _Alloc>::
|
||||
_M_reallocate(size_type __n)
|
||||
{
|
||||
+ const iterator __begin = begin(), __end = end();
|
||||
+ if (size_type(__end - __begin) > __n)
|
||||
+ __builtin_unreachable();
|
||||
_Bit_pointer __q = this->_M_allocate(__n);
|
||||
iterator __start(std::__addressof(*__q), 0);
|
||||
- iterator __finish(_M_copy_aligned(begin(), end(), __start));
|
||||
+ iterator __finish(_M_copy_aligned(__begin, __end, __start));
|
||||
this->_M_deallocate();
|
||||
this->_M_impl._M_start = __start;
|
||||
this->_M_impl._M_finish = __finish;
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/110498.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/110498.cc
|
||||
new file mode 100644
|
||||
index 00000000000..d2d09e10d19
|
||||
--- /dev/null
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/110498.cc
|
||||
@@ -0,0 +1,18 @@
|
||||
+// { dg-options "-O3 -Werror=array-bounds" }
|
||||
+// { dg-do compile }
|
||||
+
|
||||
+// Bug libstdc++/110498
|
||||
+// Spurious warnings stringop-overflow and array-bounds copying data as bytes
|
||||
+// into vector::reserve
|
||||
+
|
||||
+#include <vector>
|
||||
+
|
||||
+void f(std::vector<bool>& v)
|
||||
+{
|
||||
+ // Warning emitted when set to any number in the range [1,64].
|
||||
+ const std::size_t reserve_size = 30;
|
||||
+
|
||||
+ v.reserve(reserve_size);
|
||||
+ v.push_back(0);
|
||||
+}
|
||||
+
|
||||
--
|
||||
2.49.0
|
||||
|
@ -7996,7 +7996,7 @@
|
||||
+//asm (".hidden _ZNSt10filesystem7__cxx114_DirC2ERKNS0_4pathEbbbRSt10error_code");
|
||||
--- libstdc++-v3/src/nonshared17/fs_ops80.cc.jj 2024-07-18 16:10:38.338406596 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/fs_ops80.cc 2024-07-19 15:49:59.793786981 +0200
|
||||
@@ -0,0 +1,103 @@
|
||||
@@ -0,0 +1,104 @@
|
||||
+// Copyright (C) 2019-2024 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -8020,6 +8020,7 @@
|
||||
+// <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+#include "../c++17/fs_ops.cc"
|
||||
+asm (".hidden _ZNSt10filesystem11equiv_filesEPKcRK4statS1_S4_RSt10error_code");
|
||||
+asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev");
|
||||
+asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED1Ev");
|
||||
+asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev");
|
||||
|
56
gcc14-pr118509.patch
Normal file
56
gcc14-pr118509.patch
Normal file
@ -0,0 +1,56 @@
|
||||
2025-01-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/118509
|
||||
* typeck.cc (get_member_function_from_ptrfunc): Wrap force_target_expr
|
||||
with save_expr.
|
||||
|
||||
* g++.dg/expr/pmf-4.C: New test.
|
||||
|
||||
--- gcc/cp/typeck.cc.jj 2025-01-09 10:10:28.042651891 +0100
|
||||
+++ gcc/cp/typeck.cc 2025-01-20 15:09:24.200053590 +0100
|
||||
@@ -4187,8 +4187,8 @@ get_member_function_from_ptrfunc (tree *
|
||||
&& !DECL_P (instance_ptr)
|
||||
&& !TREE_CONSTANT (instance_ptr)))
|
||||
instance_ptr = instance_save_expr
|
||||
- = force_target_expr (TREE_TYPE (instance_ptr), instance_ptr,
|
||||
- complain);
|
||||
+ = save_expr (force_target_expr (TREE_TYPE (instance_ptr),
|
||||
+ instance_ptr, complain));
|
||||
|
||||
/* See above comment. */
|
||||
if (TREE_SIDE_EFFECTS (function)
|
||||
@@ -4196,7 +4196,8 @@ get_member_function_from_ptrfunc (tree *
|
||||
&& !DECL_P (function)
|
||||
&& !TREE_CONSTANT (function)))
|
||||
function
|
||||
- = force_target_expr (TREE_TYPE (function), function, complain);
|
||||
+ = save_expr (force_target_expr (TREE_TYPE (function), function,
|
||||
+ complain));
|
||||
|
||||
/* Start by extracting all the information from the PMF itself. */
|
||||
e3 = pfn_from_ptrmemfunc (function);
|
||||
--- gcc/testsuite/g++.dg/expr/pmf-4.C.jj
|
||||
+++ gcc/testsuite/g++.dg/expr/pmf-4.C
|
||||
@@ -0,0 +1,22 @@
|
||||
+// PR c++/118509
|
||||
+// { dg-do run }
|
||||
+// { dg-options "-Wall -O2" }
|
||||
+
|
||||
+struct A { void foo () { a = 1; } int a; A () : a (0) {} };
|
||||
+struct B : virtual A {};
|
||||
+typedef void (A::*C) ();
|
||||
+
|
||||
+__attribute__((noipa)) void
|
||||
+foo (C x, B *y)
|
||||
+{
|
||||
+ (y->*x) ();
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ B b;
|
||||
+ foo (&A::foo, &b);
|
||||
+ if (b.a != 1)
|
||||
+ __builtin_abort ();
|
||||
+}
|
39
plans/tier0.fmf
Normal file
39
plans/tier0.fmf
Normal file
@ -0,0 +1,39 @@
|
||||
# Tier 0 test plan. It's actually Tier 1
|
||||
# - limited to its public part
|
||||
# - executed on the architecture at hand
|
||||
# When run by osci.tier0 on CentOS Stream or RHEL, it receives the following
|
||||
# context:
|
||||
# arch=x86_64 (the architecture at hand, currently OSCI uses just x86_64)
|
||||
# distro=rhel<M>.<m> (even for CentOS Stream builds)
|
||||
# trigger=build
|
||||
---
|
||||
summary: Tier 0 test plan
|
||||
context:
|
||||
collection: gcc-toolset-14
|
||||
environment+:
|
||||
COLLECTIONS: gcc-toolset-14
|
||||
WITH_SCL: "scl enable gcc-toolset-14"
|
||||
discover:
|
||||
- name: collect_info
|
||||
how: shell
|
||||
tests:
|
||||
- name: /info/rpms
|
||||
test: rpm -qa --last
|
||||
- name: public_tests
|
||||
how: fmf
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/gcc.git
|
||||
filter: 'tag: CI-Tier-1'
|
||||
provision+:
|
||||
hardware:
|
||||
disk:
|
||||
- size: ">= 60 GiB"
|
||||
memory: ">= 8 GiB"
|
||||
prepare+:
|
||||
- how: shell
|
||||
script:
|
||||
- dnf config-manager --set-enabled '*CRB*' || true
|
||||
- dnf config-manager --set-enabled crb || true
|
||||
- dnf config-manager --set-enabled rhel-buildroot || true
|
||||
- dnf config-manager --set-enabled epel || true
|
||||
execute:
|
||||
how: tmt
|
22
rpminspect.yaml
Normal file
22
rpminspect.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
badfuncs:
|
||||
# GCC doesn't use the "forbidden" functions as such. Just some of its
|
||||
# sanitizers can instrument those functions which leads to false
|
||||
# positives in the badfuncs test.
|
||||
ignore:
|
||||
- /usr/lib*/libasan.so.*.*.*
|
||||
- /usr/lib*/libtsan.so.*.*.*
|
||||
|
||||
specname:
|
||||
# In GCC toolsets builds, the spec file name and the package are not
|
||||
# exactly the same, the package is prefixed with gcc-toolset-NN-.
|
||||
# Let's ignore the prefix.
|
||||
match: suffix
|
||||
primary: filename
|
||||
|
||||
runpath:
|
||||
# Although gcc-toolset sanitizers link gcc-toolset libraries from
|
||||
# /opt/..., they themselves are placed in /usr. The runpath test
|
||||
# doesn't like this difference. Explicitly allow it.
|
||||
allowed_paths:
|
||||
- /opt/rh/gcc-toolset-14/root/usr/lib64
|
||||
- /opt/rh/gcc-toolset-14/root/usr/lib
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
||||
SHA512 (gcc-14.2.1-20240801.tar.xz) = b21f0bfd5767d0ecb9c08ba3e3a605a841d4c6a6008bf9dd8b4c4da366d7e733600eb21095768bda91e5df6536c398bf4a941e44577aef7586e95f1d148a214f
|
||||
SHA512 (gcc-14.2.1-20250110.tar.xz) = 9de1009fd87d3734361a3c451e0d8faac984a38b2c064bea228b1a04738e870d7dcca2ee98182be5423579b8caa5f762cd06a6576e2fe797559620619ae4e169
|
||||
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
||||
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
|
||||
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
|
||||
|
Loading…
Reference in New Issue
Block a user