Compare commits
19 Commits
c10s
...
c9s-openst
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89da4e5e92 | ||
|
|
245c947c4d | ||
|
|
81cc2e0356 | ||
|
|
426ec54793 | ||
|
|
16a467056b | ||
|
|
052f5e8474 | ||
|
|
3801c64e7f | ||
|
|
29153ba787 | ||
|
|
4ddfe13cd7 | ||
|
|
2f9bed3b97 | ||
|
|
1886674cff | ||
|
|
e3b4dc923c | ||
|
|
cf52435176 | ||
|
|
7a8476ea67 | ||
|
|
24e77083e8 | ||
|
|
efb721c9de | ||
|
|
5bc48aaa13 | ||
|
|
2133a48667 | ||
|
|
2486615249 |
@ -1,6 +1,6 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-10
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.gate-build-fast-lane.functional}
|
||||
|
||||
@ -22,7 +22,7 @@ BuildRequires: gcc-toolset-%{gts_ver}-devel
|
||||
%global gcc_major 15
|
||||
# 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 8
|
||||
%global gcc_release 7
|
||||
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
|
||||
%global newlib_cygwin_gitrev d35cc82b5ec15bb8a5fe0fe11e183d1887992e99
|
||||
%global isl_version 0.24
|
||||
@ -360,7 +360,6 @@ Patch12: gcc15-pr119006.patch
|
||||
Patch13: gcc15-pr123273.patch
|
||||
Patch14: gcc15-pr123667.patch
|
||||
Patch15: gcc15-pr123737.patch
|
||||
Patch16: gcc15-pr112653.patch
|
||||
|
||||
Patch50: isl-rh2155127.patch
|
||||
|
||||
@ -727,7 +726,6 @@ so that there cannot be any synchronization problems.
|
||||
%patch -P13 -p0 -b .pr123273~
|
||||
%patch -P14 -p0 -b .pr123667~
|
||||
%patch -P15 -p0 -b .pr123737~
|
||||
%patch -P16 -p1 -b .pr112653~
|
||||
|
||||
%patch -P100 -p1 -b .fortran-fdec-duplicates~
|
||||
|
||||
@ -2910,11 +2908,8 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jul 20 2026 Siddhesh Poyarekar <siddhesh@redhat.com> 15.2.1-8
|
||||
- fix wrong optimization of conditional dynamic allocation (RHEL-192425)
|
||||
|
||||
* Mon Jan 26 2026 Siddhesh Poyarekar <siddhesh@redhat.com> 15.2.1-7
|
||||
- update from releases/gcc-15 branch (RHEL-116507)
|
||||
- update from releases/gcc-15 branch (RHEL-116513)
|
||||
- PRs ada/68179, ada/123060, ada/123088, ada/123096, ada/123138, ada/123185,
|
||||
ada/123289, ada/123302, ada/123306, ada/123371, ada/123589,
|
||||
analyzer/122975, analyzer/123085, c/123156, c++/91388, c++/114764,
|
||||
@ -2937,26 +2932,21 @@ fi
|
||||
tree-optimization/123513, tree-optimization/123602,
|
||||
tree-optimization/123736, tree-optimization/123741
|
||||
|
||||
* Tue Sep 9 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.6
|
||||
- Fix glibc32 build dependency (RHEL-113183)
|
||||
* Tue Sep 9 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.5
|
||||
- Fix glibc32 build dependency (RHEL-113182)
|
||||
|
||||
* Wed Jul 30 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.5
|
||||
- Drop the workaround for CVE-2025-5702 (RHEL-100161)
|
||||
* Mon Jun 16 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.4
|
||||
- ship libstdc++.modules.json (RHEL-97095)
|
||||
|
||||
* Fri Jun 20 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.4
|
||||
- Require gcc-toolset-N-runtime (RHEL-94672)
|
||||
|
||||
* Mon Jun 16 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.3
|
||||
- ship libstdc++.modules.json (RHEL-97043)
|
||||
- configure with --with-long-double-format=ieee (RHEL-97055)
|
||||
|
||||
* Thu Jun 12 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.2
|
||||
- Tune for z16 on s390x by default on RHEL10 and later (RHEL-94282)
|
||||
* Thu Jun 12 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 15.1.1-2.3
|
||||
- Add AS_NEEDED libstdc++.so.6 when only needed through libstdc++_nonshared
|
||||
(RHEL-84680)
|
||||
(RHEL-94866)
|
||||
|
||||
* Fri Jun 6 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.1
|
||||
- configure with --enable-host-pie --enable-host-bind-now (RHEL-95595)
|
||||
* Fri Jun 6 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.2
|
||||
- configure with --enable-host-pie --enable-host-bind-now (RHEL-95564)
|
||||
|
||||
* Wed Jun 4 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.1
|
||||
- re-enable annobin-plugin and offload-nvptx
|
||||
|
||||
* Wed May 21 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2
|
||||
- update from releases/gcc-15 branch
|
||||
|
||||
@ -4813,7 +4813,7 @@
|
||||
+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev");
|
||||
+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv");
|
||||
+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info");
|
||||
+asm (".hidden _ZNKSt6chrono14year_month_day19_M_days_since_epochEv");
|
||||
+//asm (".hidden _ZNKSt6chrono14year_month_day19_M_days_since_epochEv");
|
||||
+asm (".hidden _ZNSt6chronossERKNS_14time_zone_linkES2_");
|
||||
+asm (".hidden _ZNSt6chrono9time_zoneC2ESt10unique_ptrINS0_5_ImplESt14default_deleteIS2_EE");
|
||||
+asm (".hidden _ZNSt6chrono9time_zoneC1ESt10unique_ptrINS0_5_ImplESt14default_deleteIS2_EE");
|
||||
@ -8744,7 +8744,7 @@
|
||||
+//asm (".hidden _ZNKSt10filesystem4_Dir7currentEv");
|
||||
--- libstdc++-v3/src/nonshared17/Makefile.am.jj 2025-05-06 15:48:48.687747618 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/Makefile.am 2025-05-06 16:10:20.603262671 +0200
|
||||
@@ -0,0 +1,174 @@
|
||||
@@ -0,0 +1,155 @@
|
||||
+## Makefile for the C++17 sources of the GNU C++ Standard library.
|
||||
+##
|
||||
+## Copyright (C) 1997-2025 Free Software Foundation, Inc.
|
||||
@ -8839,25 +8839,6 @@
|
||||
+libnonshared17convenience110_la_SOURCES = $(sources110) $(inst_sources110)
|
||||
+libnonshared17convenience140_la_SOURCES = $(sources140) $(inst_sources140)
|
||||
+
|
||||
+if GLIBCXX_LDBL_ALT128_COMPAT
|
||||
+floating_from_chars.lo: floating_from_chars.cc
|
||||
+ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_from_chars.o: floating_from_chars.cc
|
||||
+ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_to_chars.lo: floating_to_chars.cc
|
||||
+ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_to_chars.o: floating_to_chars.cc
|
||||
+ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_from_chars110.lo: floating_from_chars110.cc
|
||||
+ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_from_chars110.o: floating_from_chars110.cc
|
||||
+ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_to_chars110.lo: floating_to_chars110.cc
|
||||
+ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+floating_to_chars110.o: floating_to_chars110.cc
|
||||
+ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+endif
|
||||
+
|
||||
+# AM_CXXFLAGS needs to be in each subdirectory so that it can be
|
||||
+# modified in a per-library or per-sub-library way. Need to manually
|
||||
+# set this option because CONFIG_CXXFLAGS has to be after
|
||||
@ -8947,7 +8928,7 @@
|
||||
+#include "../c++17/cow-string-inst.cc"
|
||||
--- libstdc++-v3/src/nonshared17/Makefile.in.jj 2025-05-06 15:48:48.688747604 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/Makefile.in 2025-05-07 10:09:21.643442963 +0200
|
||||
@@ -0,0 +1,871 @@
|
||||
@@ -0,0 +1,854 @@
|
||||
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
+# @configure_input@
|
||||
+
|
||||
@ -9799,23 +9780,6 @@
|
||||
+
|
||||
+vpath % $(top_srcdir)/src/nonshared17
|
||||
+
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_from_chars.lo: floating_from_chars.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_from_chars.o: floating_from_chars.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_to_chars.lo: floating_to_chars.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_to_chars.o: floating_to_chars.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_from_chars110.lo: floating_from_chars110.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_from_chars110.o: floating_from_chars110.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_to_chars110.lo: floating_to_chars110.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(LTCXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@floating_to_chars110.o: floating_to_chars110.cc
|
||||
+@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ $(CXXCOMPILE) -mabi=ibmlongdouble $(LONG_DOUBLE_128_FLAGS) -c $<
|
||||
+
|
||||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
+.NOEXPORT:
|
||||
|
||||
@ -1,160 +0,0 @@
|
||||
From a67e31af273205a4ea4acf40a15d687142d1747c Mon Sep 17 00:00:00 2001
|
||||
From: Eric Botcazou <ebotcazou@adacore.com>
|
||||
Date: Wed, 1 Jul 2026 10:23:46 +0200
|
||||
Subject: [PATCH] PTA: Fix wrong optimization of conditional dynamic allocation
|
||||
|
||||
This is a regression present on mainline, 16, 15 and 14 branches introduced
|
||||
by the fix for PR tree-optimization/112653 (PTA and return). What happens
|
||||
is that DSE incorrectly eliminates a call to memcpy, whose destination is
|
||||
obtained from (an equivalent of) malloc and is ultimately returned from the
|
||||
function. But this happens only when the dynamic allocation is conditional.
|
||||
|
||||
The difference between the unconditional and conditional cases is:
|
||||
|
||||
ESCAPED_RETURN = { ESCAPED NONLOCAL HEAP(30) }
|
||||
|
||||
vs
|
||||
|
||||
ESCAPED_RETURN = { ANYTHING }
|
||||
|
||||
The fix is to apply in set_uids_in_ptset the same treatment to ANYTHING in
|
||||
the escaped return case as in the escaped case.
|
||||
|
||||
gcc/
|
||||
* tree-ssa-structalias.cc (set_uids_in_ptset): If ANYTHING is
|
||||
present in the ESCAPED_RETURN solution, record that the global
|
||||
solution has an escaped heap if FROM contains a heap variable.
|
||||
|
||||
gcc/testsuite/
|
||||
* gnat.dg/opt109.adb: New test.
|
||||
* gnat.dg/opt109_pkg.ads, gnat.dg/opt109_pkg.adb: New helper.
|
||||
---
|
||||
gcc/testsuite/gnat.dg/opt109.adb | 13 +++++++++++
|
||||
gcc/testsuite/gnat.dg/opt109_pkg.adb | 16 ++++++++++++++
|
||||
gcc/testsuite/gnat.dg/opt109_pkg.ads | 33 ++++++++++++++++++++++++++++
|
||||
gcc/tree-ssa-structalias.cc | 17 +++++++++-----
|
||||
4 files changed, 73 insertions(+), 6 deletions(-)
|
||||
create mode 100644 gcc/testsuite/gnat.dg/opt109.adb
|
||||
create mode 100644 gcc/testsuite/gnat.dg/opt109_pkg.adb
|
||||
create mode 100644 gcc/testsuite/gnat.dg/opt109_pkg.ads
|
||||
|
||||
diff --git a/gcc/testsuite/gnat.dg/opt109.adb b/gcc/testsuite/gnat.dg/opt109.adb
|
||||
new file mode 100644
|
||||
index 00000000000..caa9e587123
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gnat.dg/opt109.adb
|
||||
@@ -0,0 +1,13 @@
|
||||
+-- { dg-do run }
|
||||
+-- { dg-options "-O" }
|
||||
+
|
||||
+with Opt109_Pkg; use Opt109_Pkg;
|
||||
+
|
||||
+procedure Opt109 is
|
||||
+ S : constant String := "Hello World!";
|
||||
+ R : constant Rec := F (S);
|
||||
+begin
|
||||
+ if R.B.Data.all /= S then
|
||||
+ raise Program_Error;
|
||||
+ end if;
|
||||
+end;
|
||||
diff --git a/gcc/testsuite/gnat.dg/opt109_pkg.adb b/gcc/testsuite/gnat.dg/opt109_pkg.adb
|
||||
new file mode 100644
|
||||
index 00000000000..410a3e41755
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gnat.dg/opt109_pkg.adb
|
||||
@@ -0,0 +1,16 @@
|
||||
+package body Opt109_Pkg is
|
||||
+
|
||||
+ function F (Value : String) return Rec is
|
||||
+ begin
|
||||
+ if Value'Length > Max then
|
||||
+ return Result : Rec (Is_Small => False) do
|
||||
+ Result.B.Data := new String'(Value);
|
||||
+ end return;
|
||||
+ else
|
||||
+ return Result : Rec (Is_Small => True) do
|
||||
+ Result.S.Data (Value'Length + 1 .. Max) := (others => ' ');
|
||||
+ end return;
|
||||
+ end if;
|
||||
+ end;
|
||||
+
|
||||
+end Opt109_Pkg;
|
||||
diff --git a/gcc/testsuite/gnat.dg/opt109_pkg.ads b/gcc/testsuite/gnat.dg/opt109_pkg.ads
|
||||
new file mode 100644
|
||||
index 00000000000..0e483ed40c7
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gnat.dg/opt109_pkg.ads
|
||||
@@ -0,0 +1,33 @@
|
||||
+with System;
|
||||
+
|
||||
+package Opt109_Pkg is
|
||||
+
|
||||
+ Max : constant Natural := 7;
|
||||
+ subtype Small_String_Size is Natural range 0 .. Max;
|
||||
+
|
||||
+ type Small_String is record
|
||||
+ Is_Small : Boolean;
|
||||
+ Length : Small_String_Size;
|
||||
+ Data : aliased String (1 .. Max);
|
||||
+ end record;
|
||||
+
|
||||
+ type Big_String_Access is access all String;
|
||||
+
|
||||
+ type Big_String is record
|
||||
+ Data : Big_String_Access := null;
|
||||
+ end record;
|
||||
+
|
||||
+ for Big_String use record
|
||||
+ Data at 0 range 0 .. System.Word_Size - 1;
|
||||
+ end record;
|
||||
+
|
||||
+ type Rec (Is_Small : Boolean := True) is record
|
||||
+ case Is_Small is
|
||||
+ when True => S : Small_String;
|
||||
+ when False => B : Big_String;
|
||||
+ end case;
|
||||
+ end record with Unchecked_Union;
|
||||
+
|
||||
+ function F (Value : String) return Rec;
|
||||
+
|
||||
+end Opt109_Pkg;
|
||||
diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc
|
||||
index 0215243d5be..f729cf4216a 100644
|
||||
--- a/gcc/tree-ssa-structalias.cc
|
||||
+++ b/gcc/tree-ssa-structalias.cc
|
||||
@@ -6782,12 +6782,15 @@ static void
|
||||
set_uids_in_ptset (bitmap into, bitmap from, struct pt_solution *pt,
|
||||
tree fndecl)
|
||||
{
|
||||
+ const varinfo_t escaped_vi = get_varinfo (find (escaped_id));
|
||||
+ const varinfo_t escaped_return_vi = get_varinfo (find (escaped_return_id));
|
||||
+ const bool everything_escaped
|
||||
+ = escaped_vi->solution && bitmap_bit_p (escaped_vi->solution, anything_id);
|
||||
+ const bool everything_escaped_return
|
||||
+ = escaped_return_vi->solution
|
||||
+ && bitmap_bit_p (escaped_return_vi->solution, anything_id);
|
||||
unsigned int i;
|
||||
bitmap_iterator bi;
|
||||
- varinfo_t escaped_vi = get_varinfo (find (escaped_id));
|
||||
- varinfo_t escaped_return_vi = get_varinfo (find (escaped_return_id));
|
||||
- bool everything_escaped
|
||||
- = escaped_vi->solution && bitmap_bit_p (escaped_vi->solution, anything_id);
|
||||
|
||||
EXECUTE_IF_SET_IN_BITMAP (from, 0, i, bi)
|
||||
{
|
||||
@@ -6803,8 +6806,10 @@ set_uids_in_ptset (bitmap into, bitmap from, struct pt_solution *pt,
|
||||
pt->vars_contains_escaped = true;
|
||||
pt->vars_contains_escaped_heap |= vi->is_heap_var;
|
||||
}
|
||||
- if (escaped_return_vi->solution
|
||||
- && bitmap_bit_p (escaped_return_vi->solution, i))
|
||||
+
|
||||
+ if (everything_escaped_return
|
||||
+ || (escaped_return_vi->solution
|
||||
+ && bitmap_bit_p (escaped_return_vi->solution, i)))
|
||||
pt->vars_contains_escaped_heap |= vi->is_heap_var;
|
||||
|
||||
if (vi->is_restrict_var)
|
||||
--
|
||||
2.55.0
|
||||
|
||||
@ -9,9 +9,10 @@
|
||||
---
|
||||
summary: Tier 0 test plan
|
||||
context:
|
||||
component: gcc-toolset-15-gcc
|
||||
collection: gcc-toolset-15
|
||||
environment+:
|
||||
WITH_SCL: gcc-toolset-15-env
|
||||
COLLECTIONS: gcc-toolset-15
|
||||
WITH_SCL: "scl enable gcc-toolset-15"
|
||||
discover:
|
||||
- name: collect_info
|
||||
how: shell
|
||||
|
||||
Loading…
Reference in New Issue
Block a user