Compare commits

..

19 Commits

Author SHA1 Message Date
Václav Kadlčík
89da4e5e92 Standardize tier1 in gating
The tier1 tests were traditionally run by BaseOS CI by various
tasks if the baseos-ci.brew-build.* family, typically implemented
by Beaker jobs.

Every component used to have its own special flavor of the
configuration, both in BaseOS CI (the triggering part) and here in
the component's gating.yaml (results processing).

The each-component-is-a-snowflake approach didn't work very well,
creating discrepancies like RHEL-140879.

At long last, I've unified the BaseOS CI configuration for all my
components:
- drop the Beaker job(s) (which have been declared obsoleted anyway)
- trigger two OpenStack jobs
  - "fast lane" for architectures where we usually get results fast,
    sometimes it's advantageous to take a look ASAP
  - "slow lane" for architectures we typically have to wait
For reference, it's commit d2baef686 in baseos-qe/citool-config.

Now I'm fixing the counterpart in gating.yaml (results processing):
We wait for the "fast lane" and "slow lane" results and they both
must pass.
2026-02-13 14:33:35 +01:00
Siddhesh Poyarekar
245c947c4d Fix release number
Related: RHEL-116513
2026-01-27 14:02:12 -05:00
Siddhesh Poyarekar
81cc2e0356 Adjust libstdc++ compat symbols
Related: RHEL-116513
2026-01-27 13:58:57 -05:00
Siddhesh Poyarekar
426ec54793 Update gcc to 15.2.1-7
Resolves: RHEL-116513
Assisted-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-26 23:23:08 -05:00
Siddhesh Poyarekar
16a467056b Fix glibc32 build dependency
Harmonize with Fedora and RHEL9 system gcc to make sure it always picks
the correct glibc32 from buildroot.

Also sync with the c10s spec file.

Resolves: RHEL-113182
2025-09-08 21:24:09 -04:00
Marek Polacek
052f5e8474 Fix up last change
Resolves: RHEL-97095
2025-06-16 15:18:28 -04:00
Marek Polacek
3801c64e7f Ship libstdc++.modules.json
Resolves: RHEL-97095
2025-06-16 15:05:01 -04:00
Siddhesh Poyarekar
29153ba787 Fix s390x c10s tuning conditionals for c9s
Resolves: RHEL-94866
2025-06-13 10:10:45 -04:00
Siddhesh Poyarekar
4ddfe13cd7 Add AS_NEEDED libstdc++.so.6 when only needed through libstdc++_nonshared
Resolves: RHEL-94866
(cherry picked from commit 513ae75408)
2025-06-12 16:14:38 -04:00
Siddhesh Poyarekar
2f9bed3b97 Harmonize with c10s
Resolves: RHEL-94868
2025-06-12 16:14:29 -04:00
Marek Polacek
1886674cff Harmonize with c10s
Resolves: RHEL-95564
2025-06-06 12:55:20 -04:00
Marek Polacek
e3b4dc923c Configure with --enable-host-pie --enable-host-bind-now
Resolves: RHEL-95564
2025-06-06 12:53:33 -04:00
Marek Polacek
cf52435176 Re-enable nvptx-offload
Related: RHEL-81741
2025-06-04 17:22:10 -04:00
Marek Polacek
7a8476ea67 Initial version of gcc-toolset-15-gcc
Related: RHEL-81741
2025-05-28 11:07:59 -04:00
Václav Kadlčík
24e77083e8 Add some downstream tests to be run by osci.tier0
This is an equivalent to what system GCC of CentOS Stream 10 already
has [1].

Related: RHEL-92605

[1] 5780c4d2e3
2025-05-27 08:05:16 +02:00
Václav Kadlčík
efb721c9de Fix forgotten gcc-toolset-14 in rpminspect config
Should fix "runpath" failures in gating

Related: RHEL-81741
2025-05-21 09:03:37 +02:00
Siddhesh Poyarekar
5bc48aaa13 Fix GTS version in the package name
Related: RHEL-81741
2025-05-12 12:56:14 -04:00
Marek Polacek
2133a48667 Tweak CL
Resolves: RHELPLAN-171626
2025-05-08 12:03:16 -04:00
Marek Polacek
2486615249 Initial version
Resolves: RHELPLAN-171626
2025-04-14 15:13:53 -04:00
5 changed files with 20 additions and 225 deletions

View File

@ -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}

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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