Initial version, with GCC 15 symbols
Resolves: RHEL-152991
This commit is contained in:
parent
c467a2a302
commit
19843540d3
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@ -1 +1,4 @@
|
||||
/gcc-12.1.1-20220507.tar.xz
|
||||
/gcc-15.2.1-20260123.tar.xz
|
||||
/isl-0.24.tar.bz2
|
||||
/newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz
|
||||
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
From 87e2a4f28b444f376ebe15f38e2743eb952ff355 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 1 Sep 2021 11:02:53 -0400
|
||||
Subject: [PATCH 09/17] Fix 22_locale/locale/cons/unicode.cc when run under DTS
|
||||
|
||||
Various has_facet calls return false in DTS, as DTS is using the
|
||||
std::locale from the system libstdc++.
|
||||
|
||||
Hence this patch tweaks tests to remove the VERIFY from the result of
|
||||
the call, so that they do not fail if run against an older
|
||||
std::locale.
|
||||
|
||||
These VERIFY tests were added upstream 2015-01-16 in
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=bb93f35da1612940266f5d159b6cc5a3e54fca14
|
||||
---
|
||||
libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
|
||||
index 15c621099..328145094 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
|
||||
@@ -70,8 +70,8 @@ void test01()
|
||||
VERIFY( has_facet<w_codecvt>(loc13) );
|
||||
#endif
|
||||
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
|
||||
- VERIFY( has_facet<u16_codecvt>(loc13) );
|
||||
- VERIFY( has_facet<u32_codecvt>(loc13) );
|
||||
+ (void)( has_facet<u16_codecvt>(loc13) );
|
||||
+ (void)( has_facet<u32_codecvt>(loc13) );
|
||||
#ifdef _GLIBCXX_USE_CHAR8_T
|
||||
VERIFY( has_facet<u16u8_codecvt>(loc13) );
|
||||
VERIFY( has_facet<u32u8_codecvt>(loc13) );
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -92,10 +92,10 @@ diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/l
|
||||
index 7f9580db8..5e4b32f76 100644
|
||||
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
@@ -58,6 +58,7 @@ load_gcc_lib timeout.exp
|
||||
load_gcc_lib timeout-dg.exp
|
||||
@@ -74,6 +74,7 @@
|
||||
load_gcc_lib wrapper.exp
|
||||
load_gcc_lib target-utils.exp
|
||||
load_gcc_lib dg-test-cleanup.exp
|
||||
+load_lib dts.exp
|
||||
|
||||
# Useful for debugging. Pass the name of a variable and the verbosity
|
||||
|
||||
13
0018-Use-CXX11-ABI.patch
Normal file
13
0018-Use-CXX11-ABI.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C b/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C
|
||||
index 47f97dcb636..66f07aaa749 100644
|
||||
--- a/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C
|
||||
+++ b/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C
|
||||
@@ -5,6 +5,8 @@
|
||||
{ dg-options "-O2 -Wall" }
|
||||
{ dg-skip-if "requires hosted libstdc++ for string" { ! hostedlib } } */
|
||||
|
||||
+#define _GLIBCXX_USE_CXX11_ABI 1
|
||||
+
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
12
0020-more-fixes.patch
Normal file
12
0020-more-fixes.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
|
||||
index b64e71dae22..5bf47b20820 100644
|
||||
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
|
||||
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
|
||||
@@ -12,7 +12,6 @@
|
||||
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: 10" "thread2" { target { ! aarch64*-*-* } } } } */
|
||||
-/* { dg-final { scan-tree-dump "Jumps threaded: 17" "thread2" { target { aarch64*-*-* } } } } */
|
||||
|
||||
enum STATE {
|
||||
S0=0,
|
||||
424
0021-libstdc++-disable-tests.patch
Normal file
424
0021-libstdc++-disable-tests.patch
Normal file
@ -0,0 +1,424 @@
|
||||
See https://bugzilla.redhat.com/show_bug.cgi?id=2095749#c3
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
|
||||
index 071597b4dd3..22cfdc7415b 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
|
||||
@@ -99,5 +99,7 @@ void test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
|
||||
index ec0f943dd73..6c7c0c60ed0 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
|
||||
@@ -351,6 +351,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
|
||||
index d0619f9de1f..499871bf5b4 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
|
||||
@@ -238,6 +238,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
|
||||
index 9171b7d5a17..9c6d1794991 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
|
||||
@@ -62,6 +62,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
|
||||
index 9d004b05e87..9eeff07aaf3 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
|
||||
@@ -91,6 +91,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
|
||||
index 45d4edeca00..6e2efad56d4 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
|
||||
@@ -351,6 +351,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
|
||||
index 0518842692f..485c1b41d1b 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
|
||||
@@ -238,6 +238,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
|
||||
index 456472601be..180255e948e 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
|
||||
@@ -62,6 +62,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
|
||||
index 7c5a829fa60..38673aac17b 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
|
||||
@@ -91,6 +91,8 @@ test01()
|
||||
int
|
||||
main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
|
||||
index e50afa6aa73..2f326f85afe 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
|
||||
@@ -74,6 +74,8 @@ void test01()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
|
||||
index f6e32b7f781..54a921e243b 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
|
||||
@@ -74,6 +74,8 @@ void test01()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc b/libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
|
||||
index fe6980dff29..0a033b81138 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
|
||||
@@ -71,7 +71,9 @@ test03()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
test03();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc b/libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
|
||||
index fd040098b40..3adabc60221 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
|
||||
@@ -71,7 +71,9 @@ test03()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
test03();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
|
||||
index e39f5928a1f..22421b158cb 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
#if __cpp_lib_ios_noreplace
|
||||
std::ios::openmode noreplace = std::ios::noreplace;
|
||||
#else
|
||||
@@ -26,4 +27,5 @@ int main()
|
||||
of.close();
|
||||
of.open("noreplace", noreplace);
|
||||
VERIFY( ! of.is_open() );
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
|
||||
index 77f11865ac4..07748578417 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
#if __cpp_lib_ios_noreplace
|
||||
std::wios::openmode noreplace = std::wios::noreplace;
|
||||
#else
|
||||
@@ -26,4 +27,5 @@ int main()
|
||||
of.close();
|
||||
of.open("noreplace", noreplace);
|
||||
VERIFY( ! of.is_open() );
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
|
||||
index 12da0b1f011..689ee0ee85b 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
|
||||
@@ -98,6 +98,8 @@ test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
|
||||
index 652f46f615c..abe55ca1285 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
|
||||
@@ -96,6 +96,8 @@ test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
|
||||
index 8c2fe85db36..92fb45495c1 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
|
||||
@@ -59,6 +59,8 @@ test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
|
||||
index 887a9a773d1..efb0c2e878a 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
|
||||
@@ -59,6 +59,8 @@ test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
|
||||
index 39ff1761c55..9583c630fa8 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
|
||||
@@ -91,6 +91,8 @@ static bool ampm_time_format()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test02();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
|
||||
index 228d61f1e41..a1c3265155f 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
|
||||
@@ -91,6 +91,8 @@ static bool ampm_time_format()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test02();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
|
||||
index adbf7e7e733..4d6b4e2ec96 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
|
||||
@@ -99,5 +99,7 @@ void test02()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test02();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
|
||||
index de7a371c1c4..d5fc73d1a36 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
|
||||
@@ -59,7 +59,9 @@ void test02()
|
||||
|
||||
VERIFY( os.good() );
|
||||
VERIFY( buf.sync_called() );
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
VERIFY( buf_tie.sync_called() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -80,7 +82,9 @@ test03()
|
||||
|
||||
VERIFY( os.rdstate() & std::ios_base::eofbit );
|
||||
VERIFY( !buf.sync_called() );
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
VERIFY( !buf_tie.sync_called() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
|
||||
index b330be46afa..40b9dfdb61b 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
|
||||
@@ -57,7 +57,9 @@ void test02()
|
||||
|
||||
VERIFY( os.good() );
|
||||
VERIFY( buf.sync_called() );
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
VERIFY( buf_tie.sync_called() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -78,7 +80,9 @@ test03()
|
||||
|
||||
VERIFY( os.rdstate() & std::ios_base::eofbit );
|
||||
VERIFY( !buf.sync_called() );
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
VERIFY( !buf_tie.sync_called() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
|
||||
index 138648f5264..70f651818ba 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
|
||||
@@ -73,7 +73,9 @@ void test02()
|
||||
// libstdc++/9546
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
|
||||
index 731df74de9f..b6d31711910 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
|
||||
@@ -73,7 +73,9 @@ void test02()
|
||||
// libstdc++/9546
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
test02();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
|
||||
index 2eccfdceb94..98d57ff4259 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
|
||||
@@ -47,6 +47,8 @@ void test01()
|
||||
// libstdc++/9546
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
|
||||
index 92161b22632..9d75c2c69fb 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
|
||||
@@ -47,6 +47,8 @@ void test01()
|
||||
// libstdc++/9546
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
|
||||
index d4cd0dc3040..a60acf00b04 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
|
||||
@@ -44,5 +44,7 @@ void test01()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
|
||||
index c639ce54906..5c749922016 100644
|
||||
--- a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
|
||||
@@ -45,5 +45,7 @@ void test01()
|
||||
|
||||
int main()
|
||||
{
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 8
|
||||
test01();
|
||||
+#endif
|
||||
}
|
||||
@ -1,31 +1,159 @@
|
||||
%global __python /usr/bin/python3
|
||||
%global scl 1
|
||||
%global scl compat-sap-c++
|
||||
%global scl_prefix compat-sap-
|
||||
%global _root_prefix /opt/rh/SAP
|
||||
%global _root_infodir %{_root_prefix}/%{_infodir}
|
||||
%global _root_mandir %{_root_prefix}/%{_mandir}
|
||||
%global __python /usr/bin/python3
|
||||
%{?scl:%global __strip strip}
|
||||
%{?scl:%global __objdump objdump}
|
||||
%global DATE 20220507
|
||||
%global gitrev fa107326a13af9a7d7aa0df28fe364db0f6fb171
|
||||
%global gcc_version 12.1.1
|
||||
%global gcc_major 12
|
||||
%global DATE 20260123
|
||||
%global gitrev 226e8310eed1ce10784f98f199e1aa4b12ca86b7
|
||||
%global gcc_version 15.2.1
|
||||
%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 1
|
||||
%global gcc_release 7
|
||||
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
|
||||
%global newlib_cygwin_gitrev d35cc82b5ec15bb8a5fe0fe11e183d1887992e99
|
||||
%global isl_version 0.24
|
||||
%global mpc_version 1.0.3
|
||||
%global mpfr_version 3.1.4
|
||||
%global gmp_version 6.1.0
|
||||
%global doxygen_version 1.8.0
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%if 0%{?fedora:1}
|
||||
%global _performance_build 1
|
||||
# Hardening slows the compiler way too much.
|
||||
%undefine _hardened_build
|
||||
%endif
|
||||
%undefine _auto_set_build_flags
|
||||
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
|
||||
# Until annobin is fixed (#1519165).
|
||||
%undefine _annotated_build
|
||||
%global multilib_64_archs sparc64 ppc64 x86_64
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
|
||||
%endif
|
||||
# Strip will fail on nvptx-none *.a archives and the brp-* scripts will
|
||||
# fail randomly depending on what is stripped last.
|
||||
%if 0%{?__brp_strip_static_archive:1}
|
||||
%global __brp_strip_static_archive %{__brp_strip_static_archive} || :
|
||||
%endif
|
||||
%if 0%{?__brp_strip_lto:1}
|
||||
%global __brp_strip_lto %{__brp_strip_lto} || :
|
||||
%endif
|
||||
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
|
||||
%global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64
|
||||
%else
|
||||
%global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64
|
||||
%endif
|
||||
%if 0%{?rhel} > 7
|
||||
%global build_ada 0
|
||||
%global build_objc 0
|
||||
%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 0
|
||||
%else
|
||||
%global build_ada 0
|
||||
%endif
|
||||
%global build_objc 0
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
|
||||
%global build_go 0
|
||||
%else
|
||||
%global build_go 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64
|
||||
%global build_d 0
|
||||
%else
|
||||
%global build_d 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
|
||||
%global build_m2 0
|
||||
%else
|
||||
%global build_m2 0
|
||||
%endif
|
||||
%ifarch x86_64 aarch64
|
||||
%global build_cobol 0
|
||||
%else
|
||||
%global build_cobol 0
|
||||
%endif
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ia64 ppc64le
|
||||
%global build_libquadmath 0
|
||||
%else
|
||||
%global build_libquadmath 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64
|
||||
%global build_libasan 0
|
||||
%else
|
||||
%global build_libasan 0
|
||||
%endif
|
||||
%ifarch x86_64 aarch64
|
||||
%global build_libhwasan 0
|
||||
%else
|
||||
%global build_libhwasan 0
|
||||
%endif
|
||||
%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64
|
||||
%global build_libtsan 0
|
||||
%else
|
||||
%global build_libtsan 0
|
||||
%endif
|
||||
%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64
|
||||
%global build_liblsan 0
|
||||
%else
|
||||
%global build_liblsan 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64
|
||||
%global build_libubsan 0
|
||||
%else
|
||||
%global build_libubsan 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
|
||||
%global build_libatomic 0
|
||||
%else
|
||||
%global build_libatomic 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64 riscv64
|
||||
%global build_libitm 0
|
||||
%else
|
||||
%global build_libitm 0
|
||||
%endif
|
||||
%if 0%{?rhel} > 8
|
||||
%global build_isl 0
|
||||
%else
|
||||
%global build_isl 1
|
||||
%endif
|
||||
%global build_libstdcxx_docs 0
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
|
||||
%global attr_ifunc 1
|
||||
%else
|
||||
%global attr_ifunc 0
|
||||
%endif
|
||||
%ifarch x86_64 ppc64le
|
||||
%global build_offload_nvptx 0
|
||||
%else
|
||||
%global build_offload_nvptx 0
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%global build_offload_amdgcn 0
|
||||
%else
|
||||
%global build_offload_amdgcn 0
|
||||
%endif
|
||||
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
|
||||
%ifarch s390x
|
||||
%global multilib_32_arch s390
|
||||
%endif
|
||||
%endif
|
||||
%ifarch sparc64
|
||||
%global multilib_32_arch sparcv9
|
||||
%endif
|
||||
%ifarch ppc64 ppc64p7
|
||||
%global multilib_32_arch ppc
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%global multilib_32_arch i686
|
||||
%endif
|
||||
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 10
|
||||
%global build_annobin_plugin 1
|
||||
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 8
|
||||
%global build_annobin_plugin 0
|
||||
%else
|
||||
%global build_annobin_plugin 0
|
||||
%endif
|
||||
@ -33,19 +161,44 @@ Summary: C++ compatibility runtime library for SAP applications
|
||||
Name: %{?scl_prefix}c++
|
||||
ExclusiveArch: x86_64 ppc64le s390x
|
||||
Version: %{gcc_version}
|
||||
Release: %{gcc_release}.1%{?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
|
||||
Release: 1%{?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
|
||||
# libcody: Apache-2.0
|
||||
# libphobos/src/etc/c/curl.d: curl
|
||||
# All of the remaining license soup is in newlib.
|
||||
License: GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
|
||||
# The source for this package was pulled from upstream's vcs.
|
||||
# %%{gitrev} is some commit from the
|
||||
# https://gcc.gnu.org/git/?p=gcc.git;h=refs/vendors/redhat/heads/gcc-%%{gcc_major}-branch
|
||||
# branch. Use the following commands to generate the tarball:
|
||||
# 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 %%{gitrev}
|
||||
# git --git-dir=gcc-dir.tmp/.git archive --prefix=%%{name}-%%{version}-%%{DATE}/ %%{gitrev} | xz -9e > %%{name}-%%{version}-%%{DATE}.tar.xz
|
||||
# rm -rf gcc-dir.tmp
|
||||
# branch. Use the following command to generate the tarball:
|
||||
# ./update-gcc.sh %%{gitrev}
|
||||
# optionally if say /usr/src/gcc/.git/ is an existing gcc git clone
|
||||
# ./update-gcc.sh %%{gitrev} /usr/src/gcc/.git/
|
||||
# to speed up the clone operations.
|
||||
# Note, %%{gitrev} macro in
|
||||
# gcc.spec shouldn't be updated before running the script, the script
|
||||
# will update it, fill in some %%changelog details etc.
|
||||
Source0: gcc-%{version}-%{DATE}.tar.xz
|
||||
Source1: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
|
||||
#Source2: http://www.multiprecision.org/mpc/download/mpc-%%{mpc_version}.tar.gz
|
||||
#Source3: ftp://ftp.stack.nl/pub/users/dimitri/doxygen-%%{doxygen_version}.src.tar.gz
|
||||
# The source for nvptx-tools package was pulled from upstream's vcs. Use the
|
||||
# following commands to generate the tarball:
|
||||
# git clone --depth 1 https://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp
|
||||
# git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev}
|
||||
# git --git-dir=nvptx-tools-dir.tmp/.git archive --prefix=nvptx-tools-%%{nvptx_tools_gitrev}/ %%{nvptx_tools_gitrev} | xz -9e > nvptx-tools-%%{nvptx_tools_gitrev}.tar.xz
|
||||
# rm -rf nvptx-tools-dir.tmp
|
||||
Source4: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz
|
||||
# The source for nvptx-newlib package was pulled from upstream's vcs. Use the
|
||||
# following commands to generate the tarball:
|
||||
# git clone https://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp
|
||||
# git --git-dir=newlib-cygwin-dir.tmp/.git archive --prefix=newlib-cygwin-%%{newlib_cygwin_gitrev}/ %%{newlib_cygwin_gitrev} ":(exclude)newlib/libc/sys/linux/include/rpc/*.[hx]" | xz -9e > newlib-cygwin-%%{newlib_cygwin_gitrev}.tar.xz
|
||||
# rm -rf newlib-cygwin-dir.tmp
|
||||
Source5: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz
|
||||
#Source7: http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-%%{mpfr_version}.tar.bz2
|
||||
#Source8: http://gcc.gnu.org/pub/gcc/infrastructure/gmp-%%{gmp_version}.tar.bz2
|
||||
URL: http://gcc.gnu.org
|
||||
# Need binutils with -pie support >= 2.14.90.0.4-4
|
||||
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
|
||||
@ -60,31 +213,36 @@ URL: http://gcc.gnu.org
|
||||
# Need binutils which support -plugin
|
||||
# Need binutils which support .loc view >= 2.30
|
||||
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
|
||||
BuildRequires: binutils >= 2.19.51.0.14-33
|
||||
# Need binutils which support .base64 >= 2.43
|
||||
BuildRequires: gcc-toolset-15-binutils >= 2.43
|
||||
# For VTA guality testing
|
||||
%if 0%{?rhel} >= 9
|
||||
BuildRequires: gdb >= 7.4.50
|
||||
%else
|
||||
BuildRequires: gcc-toolset-15-gdb >= 7.4.50
|
||||
%endif
|
||||
# While gcc doesn't include statically linked binaries, during testing
|
||||
# -static is used several times.
|
||||
BuildRequires: glibc-static
|
||||
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils
|
||||
BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
|
||||
BuildRequires: gcc, gcc-c++, make
|
||||
# For VTA guality testing
|
||||
BuildRequires: gdb
|
||||
# Make sure pthread.h doesn't contain __thread tokens
|
||||
# Make sure glibc supports stack protector
|
||||
# Make sure glibc supports DT_GNU_HASH
|
||||
BuildRequires: glibc-devel >= 2.4.90-13
|
||||
BuildRequires: elfutils-devel >= 0.147
|
||||
BuildRequires: elfutils-libelf-devel >= 0.147
|
||||
%if 0%{?rhel} >= 8
|
||||
BuildRequires: libzstd-devel
|
||||
%endif
|
||||
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
|
||||
# Make sure glibc supports TFmode long double
|
||||
BuildRequires: glibc >= 2.3.90-35
|
||||
%endif
|
||||
%ifarch %{multilib_64_archs} sparcv9 ppc
|
||||
# Ensure glibc{,-devel} is installed for both multilib arches
|
||||
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
|
||||
%ifarch %{multilib_64_archs}
|
||||
BuildRequires: (glibc32 or glibc-devel(%{__isa_name}-32))
|
||||
%endif
|
||||
%ifarch sparcv9 ppc
|
||||
BuildRequires: (glibc64 or glibc-devel(%{__isa_name}-64))
|
||||
%endif
|
||||
%ifarch ia64
|
||||
BuildRequires: libunwind >= 0.98
|
||||
@ -105,44 +263,25 @@ BuildRequires: libunwind >= 0.98
|
||||
# Need binutils that support -plugin
|
||||
# Need binutils that support .loc view >= 2.30
|
||||
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
|
||||
# Don't require this for compat-sap-c++ (#1491573).
|
||||
#Requires: binutils >= 2.19.51.0.14-33
|
||||
# Make sure gdb will understand DW_FORM_strp
|
||||
Conflicts: gdb < 5.1-2
|
||||
Conflicts: compat-sap-c++-12 < 12.1.1-1.1
|
||||
Conflicts: compat-sap-c++-11 < 12.1.1-1.1
|
||||
Conflicts: compat-sap-c++-10 < 12.1.1-1.1
|
||||
Conflicts: compat-sap-c++-9 < 12.1.1-1.1
|
||||
# Don't require this for compat-sap-c++ (#1491573).
|
||||
#Requires: glibc-devel >= 2.2.90-12
|
||||
# Need binutils that support .base64 >= 2.43
|
||||
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
|
||||
# Make sure glibc supports TFmode long double
|
||||
Requires: glibc >= 2.3.90-35
|
||||
%endif
|
||||
Requires: libgcc >= 4.1.2-43
|
||||
# Keep this for now.
|
||||
Requires: libgomp >= 4.4.4-13
|
||||
BuildRequires: gmp-devel >= 4.1.2-8
|
||||
BuildRequires: gmp-devel >= 4.3.2
|
||||
BuildRequires: mpfr-devel >= 3.1.0
|
||||
%if 0%{?rhel} >= 7
|
||||
BuildRequires: libmpc-devel >= 0.8.1
|
||||
%if %{build_libstdcxx_docs}
|
||||
BuildRequires: libxml2
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: doxygen >= 1.7.1
|
||||
BuildRequires: dblatex, texlive-collection-latex, docbook-style-xsl
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} == 8
|
||||
%ifarch ppc64le
|
||||
BuildRequires: gcc-toolset-12-runtime gcc-toolset-12-binutils
|
||||
BuildRequires: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++
|
||||
%endif
|
||||
%endif
|
||||
|
||||
Requires: libgcc >= 4.1.2-43
|
||||
Requires: libgomp >= 4.4.4-13
|
||||
AutoReq: true
|
||||
AutoProv: false
|
||||
# Don't provide this for compat-sap-c++ (#1491573).
|
||||
#%ifarch sparc64 ppc64 ppc64le s390x x86_64 ia64
|
||||
#Provides: liblto_plugin.so.0()(64bit)
|
||||
#%else
|
||||
#Provides: liblto_plugin.so.0
|
||||
#%endif
|
||||
%global oformat %{nil}
|
||||
%global oformat2 %{nil}
|
||||
%ifarch %{ix86}
|
||||
@ -177,24 +316,35 @@ AutoProv: false
|
||||
%global oformat OUTPUT_FORMAT(elf64-littleaarch64)
|
||||
%endif
|
||||
|
||||
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
|
||||
Patch0: gcc15-hack.patch
|
||||
Patch2: gcc15-sparc-config-detection.patch
|
||||
Patch3: gcc15-libgomp-omp_h-multilib.patch
|
||||
Patch4: gcc15-libtool-no-rpath.patch
|
||||
Patch5: gcc15-isl-dl.patch
|
||||
Patch6: gcc15-isl-dl2.patch
|
||||
Patch7: gcc15-libstdc++-docs.patch
|
||||
Patch8: gcc15-no-add-needed.patch
|
||||
Patch9: gcc15-Wno-format-security.patch
|
||||
Patch10: gcc15-rh1574936.patch
|
||||
Patch11: gcc15-d-shared-libphobos.patch
|
||||
Patch12: gcc15-pr119006.patch
|
||||
Patch13: gcc15-pr123273.patch
|
||||
Patch14: gcc15-pr123667.patch
|
||||
Patch15: gcc15-pr123737.patch
|
||||
|
||||
Patch50: isl-rh2155127.patch
|
||||
|
||||
Patch100: gcc15-fortran-fdec-duplicates.patch
|
||||
|
||||
Patch1000: gcc15-libstdc++-compat.patch
|
||||
Patch1001: gcc15-libgfortran-compat.patch
|
||||
Patch1002: gcc15-nvptx-offload.patch
|
||||
|
||||
Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch
|
||||
Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch
|
||||
Patch3002: 0005-Disable-tests-for-PR-libstdc-79820-and-PR-libstdc-81.patch
|
||||
Patch3003: 0006-Don-t-assume-has_facet-codecvt_c16-when-run-against-.patch
|
||||
Patch3004: 0008-testsuite-build-plugins-with-std-c-11.patch
|
||||
Patch3005: 0009-Fix-22_locale-locale-cons-unicode.cc-when-run-under-.patch
|
||||
Patch3006: 0010-Don-t-verify-exception-handling-in-basic_filebuf-clo.patch
|
||||
Patch3007: 0011-Add-dts.exp-and-use-it-to-fix-22_locale-messages-136.patch
|
||||
Patch3008: 0012-dts.exp-use-usr-bin-gcc.patch
|
||||
@ -203,10 +353,16 @@ Patch3010: 0014-Conditionalize-tests-for-PR-libstdc-98466-on-__LIBST.patch
|
||||
Patch3011: 0015-Conditionalize-test-for-PR-libstdc-87135-on-__LIBSTD.patch
|
||||
Patch3012: 0016-Conditionalize-test-for-hashtable-bucket-sizes-on-__.patch
|
||||
Patch3013: 0017-Conditionalize-test-for-PR-libstdc-71181-on-__LIBSTD.patch
|
||||
Patch3014: gcc12-dg-ice-fixes.patch
|
||||
Patch3014: gcc15-dg-ice-fixes.patch
|
||||
Patch3015: 0018-Use-CXX11-ABI.patch
|
||||
Patch3017: 0020-more-fixes.patch
|
||||
Patch3018: 0021-libstdc++-disable-tests.patch
|
||||
|
||||
%if 0%{?rhel} == 10
|
||||
%global nonsharedver 140
|
||||
%endif
|
||||
%if 0%{?rhel} == 9
|
||||
%global nonsharedver 11
|
||||
%global nonsharedver 110
|
||||
%endif
|
||||
%if 0%{?rhel} == 8
|
||||
%global nonsharedver 80
|
||||
@ -237,93 +393,87 @@ Patch3014: gcc12-dg-ice-fixes.patch
|
||||
This package provides runtime compatibility libraries for use by SAP
|
||||
application binaries only.
|
||||
|
||||
%package -n compat-sap-c++-12
|
||||
Summary: C++ compatibility runtime library for SAP applications
|
||||
Requires: compat-sap-c++ >= %{version}-%{release}
|
||||
|
||||
%description -n compat-sap-c++-12
|
||||
This package provides runtime compatibility libraries for use by SAP
|
||||
application binaries only.
|
||||
|
||||
%package -n compat-sap-c++-11
|
||||
Summary: C++ compatibility runtime library for SAP applications
|
||||
Requires: compat-sap-c++ >= %{version}-%{release}
|
||||
|
||||
%description -n compat-sap-c++-11
|
||||
This package provides runtime compatibility libraries for use by SAP
|
||||
application binaries only.
|
||||
|
||||
%package -n compat-sap-c++-10
|
||||
Summary: C++ compatibility runtime library for SAP applications
|
||||
Requires: compat-sap-c++ >= %{version}-%{release}
|
||||
|
||||
%description -n compat-sap-c++-10
|
||||
This package provides runtime compatibility libraries for use by SAP
|
||||
application binaries only.
|
||||
|
||||
%package -n compat-sap-c++-9
|
||||
Summary: C++ compatibility runtime library for SAP applications
|
||||
Requires: compat-sap-c++ >= %{version}-%{release}
|
||||
|
||||
%description -n compat-sap-c++-9
|
||||
This package provides runtime compatibility libraries for use by SAP
|
||||
application binaries only.
|
||||
|
||||
%prep
|
||||
%setup -q -n gcc-%{version}-%{DATE}
|
||||
%patch0 -p0 -b .hack~
|
||||
%patch2 -p0 -b .sparc-config-detection~
|
||||
%patch3 -p0 -b .libgomp-omp_h-multilib~
|
||||
%patch4 -p0 -b .libtool-no-rpath~
|
||||
%patch8 -p0 -b .no-add-needed~
|
||||
%patch9 -p0 -b .Wno-format-security~
|
||||
%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
|
||||
%patch10 -p0 -b .rh1574936~
|
||||
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 4 -a 5
|
||||
%patch -P0 -p0 -b .hack~
|
||||
%patch -P2 -p0 -b .sparc-config-detection~
|
||||
%patch -P3 -p0 -b .libgomp-omp_h-multilib~
|
||||
%patch -P4 -p0 -b .libtool-no-rpath~
|
||||
%if %{build_isl}
|
||||
%patch -P5 -p0 -b .isl-dl~
|
||||
%patch -P6 -p0 -b .isl-dl2~
|
||||
%endif
|
||||
%if %{build_libstdcxx_docs}
|
||||
%patch -P7 -p0 -b .libstdc++-docs~
|
||||
%endif
|
||||
%patch -P8 -p0 -b .no-add-needed~
|
||||
%patch -P9 -p0 -b .Wno-format-security~
|
||||
%patch -P10 -p0 -b .rh1574936~
|
||||
%patch -P11 -p0 -b .d-shared-libphobos~
|
||||
%patch -P12 -p0 -b .pr119006~
|
||||
%patch -P13 -p0 -b .pr123273~
|
||||
%patch -P14 -p0 -b .pr123667~
|
||||
%patch -P15 -p0 -b .pr123737~
|
||||
|
||||
%patch -P100 -p1 -b .fortran-fdec-duplicates~
|
||||
|
||||
%ifarch %{arm}
|
||||
rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go
|
||||
%endif
|
||||
%if 0%{?rhel} <= 8
|
||||
# Requires pthread_cond_clockwait, only present in glibc 2.30.
|
||||
rm -f gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
|
||||
%endif
|
||||
#rm -f libphobos/testsuite/libphobos.gc/forkgc2.d
|
||||
#rm -rf libphobos/testsuite/libphobos.gc
|
||||
|
||||
%patch -P1000 -p0 -b .libstdc++-compat~
|
||||
%patch -P1001 -p0 -b .libgfortran-compat~
|
||||
%patch -P1002 -p0 -b .nvptx-compat~
|
||||
|
||||
%if %{build_isl}
|
||||
%patch -P50 -p0 -b .isl-rh2155127~
|
||||
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
|
||||
%endif
|
||||
%patch11 -p0 -b .d-shared-libphobos~
|
||||
|
||||
# Apply DTS-specific testsuite patches.
|
||||
%patch3000 -p1 -b .dts-test-0~
|
||||
%patch3001 -p1 -b .dts-test-1~
|
||||
%patch3002 -p1 -b .dts-test-2~
|
||||
%patch3003 -p1 -b .dts-test-3~
|
||||
%patch3004 -p1 -b .dts-test-4~
|
||||
%patch3005 -p1 -b .dts-test-5~
|
||||
%patch3006 -p1 -b .dts-test-6~
|
||||
%patch3007 -p1 -b .dts-test-7~
|
||||
%patch3008 -p1 -b .dts-test-8~
|
||||
%patch3009 -p1 -b .dts-test-9~
|
||||
%patch3010 -p1 -b .dts-test-10~
|
||||
%patch3011 -p1 -b .dts-test-11~
|
||||
%patch3012 -p1 -b .dts-test-12~
|
||||
%patch3013 -p1 -b .dts-test-13~
|
||||
%patch3014 -p1 -b .dts-test-14~
|
||||
%patch -P3000 -p1 -b .dts-test-0~
|
||||
%patch -P3001 -p1 -b .dts-test-1~
|
||||
%patch -P3002 -p1 -b .dts-test-2~
|
||||
%patch -P3003 -p1 -b .dts-test-3~
|
||||
%patch -P3004 -p1 -b .dts-test-4~
|
||||
%patch -P3006 -p1 -b .dts-test-6~
|
||||
%patch -P3007 -p1 -b .dts-test-7~
|
||||
%patch -P3008 -p1 -b .dts-test-8~
|
||||
%patch -P3009 -p1 -b .dts-test-9~
|
||||
%patch -P3010 -p1 -b .dts-test-10~
|
||||
%patch -P3011 -p1 -b .dts-test-11~
|
||||
%patch -P3012 -p1 -b .dts-test-12~
|
||||
%patch -P3013 -p1 -b .dts-test-13~
|
||||
%patch -P3014 -p1 -b .dts-test-14~
|
||||
%patch -P3015 -p1 -b .dts-test-15~
|
||||
%patch -P3017 -p1 -b .dts-test-17~
|
||||
%patch -P3018 -p1 -b .dts-test-18~
|
||||
|
||||
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
|
||||
|
||||
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
|
||||
|
||||
%if 0%{?rhel} == 6
|
||||
# Default to -gdwarf-3 rather than -gdwarf-5
|
||||
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(3)/' gcc/common.opt
|
||||
sed -i 's/\(version for most targets is \)5 /\13 /' gcc/doc/invoke.texi
|
||||
%endif
|
||||
%if 0%{?rhel} <= 8
|
||||
# Default to -gdwarf-4 rather than -gdwarf-5
|
||||
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(4)/' gcc/common.opt
|
||||
sed -i '/define DWARF_VERSION_DEFAULT/s/5/4/' gcc/defaults.h
|
||||
sed -i 's/\(version for most targets is \)5 /\14 /' gcc/doc/invoke.texi
|
||||
%endif
|
||||
|
||||
cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
|
||||
cp -a libstdc++-v3/config/cpu/i{4,3}86/opt
|
||||
echo 'TM_H += $(srcdir)/config/rs6000/rs6000-modes.h' >> gcc/config/rs6000/t-rs6000
|
||||
|
||||
./contrib/gcc_update --touch
|
||||
|
||||
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
|
||||
|
||||
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
|
||||
@ -346,40 +496,38 @@ fi
|
||||
rm -f gcc/testsuite/go.test/test/chan/goroutines.go
|
||||
|
||||
# These tests get stuck and don't timeout.
|
||||
%ifarch ppc ppc64 ppc64le
|
||||
%ifarch ppc ppc64 ppc64le s390x
|
||||
rm -f libgomp/testsuite/libgomp.c/target-*.c
|
||||
rm -rf libgomp/testsuite/libgomp.oacc*
|
||||
rm -rf libgomp/testsuite/libgomp.graphite*
|
||||
# This uses a removed file (#2093997).
|
||||
rm -rf libgomp/testsuite/libgomp.fortran/pr90030.f90
|
||||
%endif
|
||||
# This test gets stuck.
|
||||
%ifarch %{ix86} ppc64 s390x
|
||||
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
|
||||
export CONFIG_SITE=NONE
|
||||
|
||||
rm -rf obj-%{gcc_target_platform}
|
||||
mkdir obj-%{gcc_target_platform}
|
||||
cd obj-%{gcc_target_platform}
|
||||
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
|
||||
%if 0%{?rhel} == 8
|
||||
%ifarch ppc64le
|
||||
export PATH=/opt/rh/gcc-toolset-12/root/usr/bin:${PATH:+:${PATH}}
|
||||
%endif
|
||||
%endif
|
||||
|
||||
CC=gcc
|
||||
CXX=g++
|
||||
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
|
||||
OPT_FLAGS="%{optflags}"
|
||||
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=[123]//g'`
|
||||
OPT_FLAGS=`echo $OPT_FLAGS|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'`
|
||||
@ -388,10 +536,98 @@ OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcp
|
||||
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
|
||||
%endif
|
||||
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
|
||||
case "$OPT_FLAGS" in
|
||||
*-fasynchronous-unwind-tables*)
|
||||
sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \
|
||||
libgcc/Makefile.in
|
||||
;;
|
||||
esac
|
||||
|
||||
%if %{build_offload_nvptx}
|
||||
mkdir obji
|
||||
IROOT=`pwd`/obji
|
||||
cd nvptx-tools-%{nvptx_tools_gitrev}
|
||||
rm -rf obj-%{gcc_target_platform}
|
||||
mkdir obj-%{gcc_target_platform}
|
||||
cd obj-%{gcc_target_platform}
|
||||
CC="$CC" CXX="$CXX" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \
|
||||
../configure --prefix=%{_prefix}
|
||||
make %{?_smp_mflags}
|
||||
make install prefix=${IROOT}%{_prefix}
|
||||
cd ../..
|
||||
|
||||
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
|
||||
rm -rf obj-offload-nvptx-none
|
||||
mkdir obj-offload-nvptx-none
|
||||
|
||||
cd obj-offload-nvptx-none
|
||||
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
|
||||
CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
|
||||
| sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
|
||||
XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
|
||||
../configure --disable-bootstrap --disable-sjlj-exceptions \
|
||||
--enable-newlib-io-long-long --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \
|
||||
--target nvptx-none --enable-as-accelerator-for=%{gcc_target_platform} \
|
||||
--enable-languages=c,c++,lto \
|
||||
--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
|
||||
--with-bugurl=http://bugzilla.redhat.com/bugzilla \
|
||||
--enable-checking=release --with-system-zlib \
|
||||
--with-gcc-major-version-only --without-isl
|
||||
make %{?_smp_mflags}
|
||||
cd ..
|
||||
rm -f newlib
|
||||
%endif
|
||||
|
||||
rm -rf obj-%{gcc_target_platform}
|
||||
mkdir obj-%{gcc_target_platform}
|
||||
cd obj-%{gcc_target_platform}
|
||||
|
||||
%if %{build_isl}
|
||||
mkdir isl-build isl-install
|
||||
%ifarch s390 s390x
|
||||
ISL_FLAG_PIC=-fPIC
|
||||
%else
|
||||
ISL_FLAG_PIC=-fpic
|
||||
%endif
|
||||
cd isl-build
|
||||
sed -i 's|libisl\([^-]\)|libgcc%{gcc_major}privateisl\1|g' \
|
||||
../../isl-%{isl_version}/Makefile.{am,in}
|
||||
../../isl-%{isl_version}/configure \
|
||||
CC=/usr/bin/gcc CXX=/usr/bin/g++ \
|
||||
CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
|
||||
# Make sure we build with -g (#2155127).
|
||||
sed -i -e 's/CFLAGS =.*/& -g/' Makefile
|
||||
make %{?_smp_mflags} CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC"
|
||||
make install
|
||||
cd ../isl-install/lib
|
||||
rm libgcc%{gcc_major}privateisl.so{,.23}
|
||||
mv libgcc%{gcc_major}privateisl.so.23.1.0 libisl.so.23
|
||||
ln -sf libisl.so.23 libisl.so
|
||||
cd ../..
|
||||
%endif
|
||||
|
||||
# Disabled on Intel because of:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2091571#c1
|
||||
%if 0%{?rhel} == 8
|
||||
%ifnarch %{ix86} x86_64
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
%endif
|
||||
%else
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
%endif
|
||||
|
||||
offloadtgts=
|
||||
%if %{build_offload_nvptx}
|
||||
offloadtgts=nvptx-none
|
||||
%endif
|
||||
%if %{build_offload_amdgcn}
|
||||
offloadtgts=${offloadtgts:+${offloadtgts},}amdgcn-amdhsa
|
||||
%endif
|
||||
|
||||
# We're going to use the old long double format (double double) until RHEL10.
|
||||
# Only -static-lib{stdc++,gfortran}/libgcc would work with IEEE double.
|
||||
# Upstream also uses the old long double format, but Fedora uses the new
|
||||
# format. To make things clearer, --with-long-double-format=ibm is used
|
||||
# format. To make things clearer, --with-long-double-format=ibm is used
|
||||
# explicitly.
|
||||
CONFIGURE_OPTS="\
|
||||
--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
|
||||
@ -407,24 +643,30 @@ CONFIGURE_OPTS="\
|
||||
%endif
|
||||
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
|
||||
--enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \
|
||||
--enable-libstdcxx-backtrace \
|
||||
--enable-libstdcxx-backtrace --with-libstdcxx-zoneinfo=%{_prefix}/share/zoneinfo \
|
||||
%ifnarch %{mips}
|
||||
--with-linker-hash-style=gnu \
|
||||
%endif
|
||||
--enable-plugin --enable-initfini-array \
|
||||
--disable-libquadmath \
|
||||
--disable-libsanitizer \
|
||||
--disable-libvtv \
|
||||
--disable-libgomp \
|
||||
--disable-libitm \
|
||||
--disable-libssp \
|
||||
--disable-libatomic \
|
||||
--disable-libcilkrts \
|
||||
%if %{build_isl}
|
||||
--with-isl=`pwd`/isl-install \
|
||||
%else
|
||||
--without-isl \
|
||||
--disable-libmpx \
|
||||
%endif
|
||||
%if %{build_offload_nvptx} || %{build_offload_amdgcn}
|
||||
--enable-offload-targets=$offloadtgts --enable-offload-defaulted \
|
||||
%endif
|
||||
%if %{build_offload_nvptx}
|
||||
--without-cuda-driver \
|
||||
%endif
|
||||
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7
|
||||
%if %{attr_ifunc}
|
||||
--enable-gnu-indirect-function \
|
||||
%endif
|
||||
%endif
|
||||
%ifarch %{arm}
|
||||
--disable-sjlj-exceptions \
|
||||
%endif
|
||||
%ifarch ppc ppc64 ppc64le ppc64p7
|
||||
--enable-secureplt \
|
||||
%endif
|
||||
@ -432,19 +674,31 @@ CONFIGURE_OPTS="\
|
||||
--with-long-double-128 \
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
%if 0%{?rhel} < 10
|
||||
--with-long-double-format=ibm \
|
||||
%else
|
||||
--with-long-double-format=ieee \
|
||||
%endif
|
||||
%endif
|
||||
%ifarch sparc
|
||||
--disable-linux-futex \
|
||||
%endif
|
||||
%ifarch sparc64
|
||||
--with-cpu=ultrasparc \
|
||||
%endif
|
||||
%ifarch sparc sparcv9
|
||||
--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
|
||||
%endif
|
||||
%ifarch ppc ppc64 ppc64p7
|
||||
%if 0%{?rhel} >= 7
|
||||
--with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \
|
||||
%endif
|
||||
%if 0%{?rhel} == 6
|
||||
--with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \
|
||||
%endif
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
%if 0%{?rhel} == 9
|
||||
%if 0%{?rhel} >= 9
|
||||
%if 0%{?rhel} >= 10
|
||||
--with-cpu-32=power9 --with-tune-32=power10 --with-cpu-64=power9 --with-tune-64=power10 \
|
||||
%else
|
||||
--with-cpu-32=power9 --with-tune-32=power9 --with-cpu-64=power9 --with-tune-64=power9 \
|
||||
%endif
|
||||
%else
|
||||
--with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \
|
||||
%endif
|
||||
@ -453,38 +707,35 @@ CONFIGURE_OPTS="\
|
||||
--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64
|
||||
%if 0%{?rhel} >= 8
|
||||
--enable-cet \
|
||||
%endif
|
||||
--with-tune=generic \
|
||||
%endif
|
||||
%if 0%{?rhel} >= 7
|
||||
%ifarch %{ix86}
|
||||
--with-arch=x86-64 \
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%if 0%{?rhel} > 8
|
||||
%if 0%{?rhel} > 9
|
||||
--with-arch_64=x86-64-v3 \
|
||||
%else
|
||||
--with-arch_64=x86-64-v2 \
|
||||
%endif
|
||||
%endif
|
||||
--with-arch_32=x86-64 \
|
||||
%endif
|
||||
%else
|
||||
%ifarch %{ix86}
|
||||
--with-arch=i686 \
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
--with-arch_32=i686 \
|
||||
%endif
|
||||
%endif
|
||||
%ifarch s390 s390x
|
||||
%if 0%{?rhel} >= 7
|
||||
%if 0%{?rhel} > 7
|
||||
%if 0%{?rhel} > 8
|
||||
%if 0%{?rhel} >= 10
|
||||
--with-arch=z14 --with-tune=z16 \
|
||||
%else
|
||||
%if 0%{?rhel} == 9
|
||||
--with-arch=z14 --with-tune=z15 \
|
||||
%else
|
||||
--with-arch=z13 --with-tune=arch13 \
|
||||
%endif
|
||||
%endif
|
||||
%else
|
||||
--with-arch=z13 --with-tune=z14 \
|
||||
%endif
|
||||
@ -492,15 +743,42 @@ CONFIGURE_OPTS="\
|
||||
--with-arch=z196 --with-tune=zEC12 \
|
||||
%endif
|
||||
%else
|
||||
%if 0%{?fedora} >= 38
|
||||
--with-arch=z13 --with-tune=z14 \
|
||||
%else
|
||||
%if 0%{?fedora} >= 26
|
||||
--with-arch=zEC12 --with-tune=z13 \
|
||||
%else
|
||||
--with-arch=z9-109 --with-tune=z10 \
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
--enable-decimal-float \
|
||||
%endif
|
||||
%ifarch armv7hl
|
||||
--with-tune=generic-armv7-a --with-arch=armv7-a \
|
||||
--with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \
|
||||
%endif
|
||||
%ifarch mips mipsel
|
||||
--with-arch=mips32r2 --with-fp-32=xx \
|
||||
%endif
|
||||
%ifarch mips64 mips64el
|
||||
--with-arch=mips64r2 --with-abi=64 \
|
||||
%endif
|
||||
%ifarch riscv64
|
||||
--with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \
|
||||
%endif
|
||||
%ifnarch sparc sparcv9 ppc
|
||||
--build=%{gcc_target_platform} \
|
||||
%endif
|
||||
%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9
|
||||
%ifnarch %{arm}
|
||||
--with-build-config=bootstrap-lto --enable-link-serialization=1 \
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?rhel:1}
|
||||
--enable-host-pie --enable-host-bind-now \
|
||||
%endif
|
||||
"
|
||||
|
||||
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
|
||||
@ -511,11 +789,10 @@ CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
|
||||
--enable-languages=c,c++,lto \
|
||||
$CONFIGURE_OPTS
|
||||
|
||||
|
||||
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
|
||||
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now
|
||||
|
||||
%install
|
||||
rm -fr %{buildroot}
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}
|
||||
@ -525,19 +802,11 @@ cd obj-%{gcc_target_platform}
|
||||
cp %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6.0.* %{buildroot}%{_root_prefix}/%{_lib}/compat-sap-c++-%{gcc_version}.so
|
||||
cd %{buildroot}%{_root_prefix}/%{_lib}/
|
||||
ln -sf compat-sap-c++-%{gcc_version}.so %{buildroot}%{_root_prefix}/%{_lib}/compat-sap-c++-%{gcc_major}.so
|
||||
ln -sf compat-sap-c++-%{gcc_version}.so %{buildroot}%{_root_prefix}/%{_lib}/compat-sap-c++-11.so
|
||||
ln -sf compat-sap-c++-%{gcc_version}.so %{buildroot}%{_root_prefix}/%{_lib}/compat-sap-c++-10.so
|
||||
ln -sf compat-sap-c++-%{gcc_version}.so %{buildroot}%{_root_prefix}/%{_lib}/compat-sap-c++-9.so
|
||||
ln -sf compat-sap-c++-%{gcc_version}.so %{buildroot}%{_root_prefix}/%{_lib}/libstdc++.so.6
|
||||
ln -sf compat-sap-c++-%{gcc_major}.so %{buildroot}%{_root_prefix}/%{_lib}/libstdc++.so.6
|
||||
|
||||
%check
|
||||
|
||||
|
||||
cd obj-%{gcc_target_platform}
|
||||
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
|
||||
|
||||
# run the tests.
|
||||
LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
|
||||
%if 0%{?fedora} >= 20 || 0%{?rhel} > 7
|
||||
@ -576,43 +845,15 @@ tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
|
||||
| uuencode testlogs-%{_target_platform}.tar.bz2 || :
|
||||
rm -rf testlogs-%{_target_platform}-%{version}-%{release}
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%dir %{_root_prefix}
|
||||
%dir %{_root_prefix}/%{_lib}
|
||||
%{_root_prefix}/%{_lib}/compat-sap-c++-%{gcc_version}.so
|
||||
%{_root_prefix}/%{_lib}/compat-sap-c++-%{gcc_major}.so
|
||||
%{_root_prefix}/%{_lib}/compat-sap-c++-11.so
|
||||
%{_root_prefix}/%{_lib}/compat-sap-c++-10.so
|
||||
%{_root_prefix}/%{_lib}/compat-sap-c++-9.so
|
||||
%{_root_prefix}/%{_lib}/libstdc++.so.6
|
||||
%{_root_prefix}/%{_lib}/README%{gcc_major}
|
||||
|
||||
%files -n compat-sap-c++-12
|
||||
|
||||
%files -n compat-sap-c++-11
|
||||
|
||||
%files -n compat-sap-c++-10
|
||||
|
||||
%files -n compat-sap-c++-9
|
||||
%{_root_prefix}/%{_lib}/libstdc++.so.6
|
||||
|
||||
%changelog
|
||||
* Mon May 16 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1
|
||||
- update to GCC 12 (#2070133)
|
||||
|
||||
* Wed Jul 14 2021 Marek Polacek <polacek@redhat.com> 11.1.1-6
|
||||
- update to GCC 11 (#1957766)
|
||||
|
||||
* Wed May 19 2021 Marek Polacek <polacek@redhat.com> 10.2.1-11
|
||||
- update from Fedora gcc 10.2.1-11 (#1933097)
|
||||
- apply gcc10-SIZE_MAX.patch
|
||||
|
||||
* Wed Jul 29 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1
|
||||
- GCC 10.2 release
|
||||
- disable -flto in %%{optflags}, lto bootstrap will be enabled the GCC way
|
||||
later
|
||||
- require MPFR Library version 3.1.0 (or later)
|
||||
|
||||
* Thu Jun 4 2020 Marek Polacek <polacek@redhat.com> 10.1.1-1
|
||||
- new package
|
||||
* Tue May 19 2026 Patrick Palka <ppalka@redhat.com> 15.2.1-1
|
||||
- New package.
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
- rhel-10
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.gate-build-fast-lane.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.gate-build-slow-lane.functional}
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
crt files and statically linked libgcc objects cause false positives
|
||||
in annobin coverage, so we add the assembler flag to generate notes
|
||||
for them.
|
||||
|
||||
The patch also adds notes to libgcc_s.so, but this is harmless because
|
||||
these notes only confer that there is no other annobin markup.
|
||||
|
||||
2018-07-25 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
|
||||
-Wa,--generate-missing-build-notes=yes.
|
||||
|
||||
--- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
|
||||
+++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
|
||||
@@ -246,6 +246,7 @@ LIBGCC2_DEBUG_CFLAGS = -g
|
||||
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
|
||||
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
|
||||
-fbuilding-libgcc -fno-stack-protector \
|
||||
+ -Wa,--generate-missing-build-notes=yes \
|
||||
$(INHIBIT_LIBC_CFLAGS)
|
||||
|
||||
# Additional options to use when compiling libgcc2.a.
|
||||
@@ -301,6 +302,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN
|
||||
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
|
||||
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
|
||||
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
|
||||
+ -Wa,--generate-missing-build-notes=yes \
|
||||
$(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
|
||||
|
||||
# Extra flags to use when compiling crt{begin,end}.o.
|
||||
@ -9,15 +9,15 @@
|
||||
* configure: Regenerated.
|
||||
|
||||
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
|
||||
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
|
||||
@@ -570,7 +570,7 @@ AC_ARG_ENABLE(build-format-warnings,
|
||||
+++ gcc/configure.ac 2024-11-30 13:34:11.100296256 +0100
|
||||
@@ -592,7 +592,7 @@ AC_ARG_ENABLE(build-format-warnings,
|
||||
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
|
||||
[],[enable_build_format_warnings=yes])
|
||||
AS_IF([test $enable_build_format_warnings = no],
|
||||
- [wf_opt=-Wno-format],[wf_opt=])
|
||||
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
|
||||
ACX_PROG_CXX_WARNING_OPTS(
|
||||
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
|
||||
m4_quote(m4_do([-W -Wall -Wno-error=narrowing -Wwrite-strings ],
|
||||
[-Wcast-qual $wf_opt])),
|
||||
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
|
||||
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
|
||||
@ -30,29 +30,33 @@
|
||||
else
|
||||
wf_opt=
|
||||
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@
|
||||
--- Makefile.tpl.jj 2023-11-29 13:21:41.680292662 +0100
|
||||
+++ Makefile.tpl 2024-11-30 13:35:29.303196246 +0100
|
||||
@@ -450,9 +450,9 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = @GDCFLAGS@
|
||||
-GM2FLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
|
||||
+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@
|
||||
CRAB1_LIBS = @CRAB1_LIBS@
|
||||
|
||||
--- Makefile.in.jj 2023-11-29 13:21:41.691292507 +0100
|
||||
+++ Makefile.in 2024-11-30 13:36:12.113594079 +0100
|
||||
@@ -447,9 +447,9 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = @GDCFLAGS@
|
||||
-GM2FLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
|
||||
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
|
||||
CRAB1_LIBS = @CRAB1_LIBS@
|
||||
|
||||
# Pass additional PGO and LTO compiler options to the PGO build.
|
||||
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
|
||||
@ -1,5 +1,3 @@
|
||||
diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
|
||||
index 9779f1036f6..0595df4e7e6 100644
|
||||
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
|
||||
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
|
||||
@@ -1,6 +1,6 @@
|
||||
@ -10,8 +8,6 @@ index 9779f1036f6..0595df4e7e6 100644
|
||||
{ dg-ice TODO { c++ } }
|
||||
{ dg-prune-output "during GIMPLE pass: omp_oacc_kernels_decompose" } */
|
||||
|
||||
diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
|
||||
index 2feabf3c7d6..c20f23e6d67 100644
|
||||
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
|
||||
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
|
||||
@@ -1,6 +1,6 @@
|
||||
@ -46,15 +42,3 @@ index bed5ea0cfc0..cb235bf891a 100644
|
||||
// { dg-ice "poplevel_class" }
|
||||
|
||||
auto test() {
|
||||
diff --git a/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C b/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
|
||||
index 0cdb400d21c..8f17cca31dd 100644
|
||||
--- a/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
|
||||
+++ b/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
|
||||
@@ -1,6 +1,6 @@
|
||||
// PR c++/87765
|
||||
// { dg-do compile { target c++17 } }
|
||||
-// { dg-additional-options "-fchecking" }
|
||||
+// { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
// { dg-ice "cxx_eval_constant_expression" }
|
||||
|
||||
template <int N>
|
||||
215
gcc15-fortran-fdec-duplicates.patch
Normal file
215
gcc15-fortran-fdec-duplicates.patch
Normal file
@ -0,0 +1,215 @@
|
||||
From 23b1fcb104c666429451ffaf936f8da5fcd3d43a Mon Sep 17 00:00:00 2001
|
||||
From: Mark Eggleston <markeggleston@gcc.gnu.org>
|
||||
Date: Fri, 22 Jan 2021 12:29:47 +0000
|
||||
Subject: [PATCH 01/10] Allow duplicate declarations.
|
||||
|
||||
Enabled by -fdec-duplicates and -fdec.
|
||||
|
||||
Some fixes by Jim MacArthur <jim.macarthur@codethink.co.uk>
|
||||
Addition of -fdec-duplicates by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
---
|
||||
gcc/fortran/lang.opt | 4 ++++
|
||||
gcc/fortran/options.cc | 1 +
|
||||
gcc/fortran/symbol.cc | 21 +++++++++++++++++--
|
||||
.../gfortran.dg/duplicate_type_4.f90 | 13 ++++++++++++
|
||||
.../gfortran.dg/duplicate_type_5.f90 | 13 ++++++++++++
|
||||
.../gfortran.dg/duplicate_type_6.f90 | 13 ++++++++++++
|
||||
.../gfortran.dg/duplicate_type_7.f90 | 13 ++++++++++++
|
||||
.../gfortran.dg/duplicate_type_8.f90 | 12 +++++++++++
|
||||
.../gfortran.dg/duplicate_type_9.f90 | 12 +++++++++++
|
||||
9 files changed, 100 insertions(+), 2 deletions(-)
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_4.f90
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_5.f90
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_6.f90
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_7.f90
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_8.f90
|
||||
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_9.f90
|
||||
|
||||
diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
|
||||
index 2b1977c523b..52bd522051e 100644
|
||||
--- a/gcc/fortran/lang.opt
|
||||
+++ b/gcc/fortran/lang.opt
|
||||
@@ -469,6 +469,10 @@ Fortran Var(flag_dec_char_conversions)
|
||||
Enable the use of character literals in assignments and data statements
|
||||
for non-character variables.
|
||||
|
||||
+fdec-duplicates
|
||||
+Fortran Var(flag_dec_duplicates)
|
||||
+Allow varibles to be duplicated in the type specification matches.
|
||||
+
|
||||
fdec-include
|
||||
Fortran Var(flag_dec_include)
|
||||
Enable legacy parsing of INCLUDE as statement.
|
||||
diff --git a/gcc/fortran/options.cc b/gcc/fortran/options.cc
|
||||
index 3a0b98bf1ec..f19ba87f8a0 100644
|
||||
--- a/gcc/fortran/options.cc
|
||||
+++ b/gcc/fortran/options.cc
|
||||
@@ -77,6 +77,7 @@ set_dec_flags (int value)
|
||||
SET_BITFLAG (flag_dec_format_defaults, value, value);
|
||||
SET_BITFLAG (flag_dec_blank_format_item, value, value);
|
||||
SET_BITFLAG (flag_dec_char_conversions, value, value);
|
||||
+ SET_BITFLAG (flag_dec_duplicates, value, value);
|
||||
}
|
||||
|
||||
/* Finalize DEC flags. */
|
||||
diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc
|
||||
index 3b988d1be22..9843175cc2a 100644
|
||||
--- a/gcc/fortran/symbol.cc
|
||||
+++ b/gcc/fortran/symbol.cc
|
||||
@@ -1995,6 +1995,8 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
|
||||
if (sym->attr.result && type == BT_UNKNOWN && sym->ns->proc_name)
|
||||
type = sym->ns->proc_name->ts.type;
|
||||
|
||||
+ flavor = sym->attr.flavor;
|
||||
+
|
||||
if (type != BT_UNKNOWN && !(sym->attr.function && sym->attr.implicit_type)
|
||||
&& !(gfc_state_stack->previous && gfc_state_stack->previous->previous
|
||||
&& gfc_state_stack->previous->previous->state == COMP_SUBMODULE)
|
||||
@@ -2007,6 +2009,23 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
|
||||
else if (sym->attr.function && sym->attr.result)
|
||||
gfc_error ("Symbol %qs at %L already has basic type of %s",
|
||||
sym->ns->proc_name->name, where, gfc_basic_typename (type));
|
||||
+ else if (flag_dec_duplicates)
|
||||
+ {
|
||||
+ /* Ignore temporaries and class/procedure names */
|
||||
+ if (sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS
|
||||
+ || sym->ts.type == BT_PROCEDURE)
|
||||
+ return false;
|
||||
+
|
||||
+ if (gfc_compare_types (&sym->ts, ts)
|
||||
+ && (flavor == FL_UNKNOWN || flavor == FL_VARIABLE
|
||||
+ || flavor == FL_PROCEDURE))
|
||||
+ {
|
||||
+ return gfc_notify_std (GFC_STD_LEGACY,
|
||||
+ "Symbol '%qs' at %L already has "
|
||||
+ "basic type of %s", sym->name, where,
|
||||
+ gfc_basic_typename (type));
|
||||
+ }
|
||||
+ }
|
||||
else
|
||||
gfc_error ("Symbol %qs at %L already has basic type of %s", sym->name,
|
||||
where, gfc_basic_typename (type));
|
||||
@@ -2020,8 +2039,6 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
|
||||
return false;
|
||||
}
|
||||
|
||||
- flavor = sym->attr.flavor;
|
||||
-
|
||||
if (flavor == FL_PROGRAM || flavor == FL_BLOCK_DATA || flavor == FL_MODULE
|
||||
|| flavor == FL_LABEL
|
||||
|| (flavor == FL_PROCEDURE && sym->attr.subroutine)
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_4.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_4.f90
|
||||
new file mode 100644
|
||||
index 00000000000..cdd29ea8846
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_4.f90
|
||||
@@ -0,0 +1,13 @@
|
||||
+! { dg-do compile }
|
||||
+! { dg-options "-std=f95" }
|
||||
+
|
||||
+! PR fortran/30239
|
||||
+! Check for errors when a symbol gets declared a type twice, even if it
|
||||
+! is the same.
|
||||
+
|
||||
+INTEGER FUNCTION foo ()
|
||||
+ IMPLICIT NONE
|
||||
+ INTEGER :: x
|
||||
+ INTEGER :: x ! { dg-error "basic type of" }
|
||||
+ x = 42
|
||||
+END FUNCTION foo
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_5.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_5.f90
|
||||
new file mode 100644
|
||||
index 00000000000..00f931809aa
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_5.f90
|
||||
@@ -0,0 +1,13 @@
|
||||
+! { dg-do run }
|
||||
+! { dg-options "-fdec" }
|
||||
+!
|
||||
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
+!
|
||||
+
|
||||
+program test
|
||||
+ implicit none
|
||||
+ integer :: x
|
||||
+ integer :: x
|
||||
+ x = 42
|
||||
+ if (x /= 42) stop 1
|
||||
+end program test
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_6.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_6.f90
|
||||
new file mode 100644
|
||||
index 00000000000..f0df27e323c
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_6.f90
|
||||
@@ -0,0 +1,13 @@
|
||||
+! { dg-do run }
|
||||
+! { dg-options "-std=legacy -fdec-duplicates" }
|
||||
+!
|
||||
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
+!
|
||||
+
|
||||
+program test
|
||||
+ implicit none
|
||||
+ integer :: x
|
||||
+ integer :: x
|
||||
+ x = 42
|
||||
+ if (x /= 42) stop 1
|
||||
+end program test
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_7.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_7.f90
|
||||
new file mode 100644
|
||||
index 00000000000..f32472ff586
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_7.f90
|
||||
@@ -0,0 +1,13 @@
|
||||
+! { dg-do run }
|
||||
+! { dg-options "-fdec-duplicates" }
|
||||
+!
|
||||
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
+!
|
||||
+
|
||||
+program test
|
||||
+ implicit none
|
||||
+ integer :: x
|
||||
+ integer :: x! { dg-warning "Legacy Extension" }
|
||||
+ x = 42
|
||||
+ if (x /= 42) stop 1
|
||||
+end program test
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_8.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_8.f90
|
||||
new file mode 100644
|
||||
index 00000000000..23c94add179
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_8.f90
|
||||
@@ -0,0 +1,12 @@
|
||||
+! { dg-do compile }
|
||||
+! { dg-options "-fdec -fno-dec-duplicates" }
|
||||
+!
|
||||
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
+!
|
||||
+
|
||||
+integer function foo ()
|
||||
+ implicit none
|
||||
+ integer :: x
|
||||
+ integer :: x ! { dg-error "basic type of" }
|
||||
+ x = 42
|
||||
+end function foo
|
||||
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_9.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_9.f90
|
||||
new file mode 100644
|
||||
index 00000000000..d5edee4d8ee
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_9.f90
|
||||
@@ -0,0 +1,12 @@
|
||||
+! { dg-do compile }
|
||||
+! { dg-options "-fdec-duplicates -fno-dec-duplicates" }
|
||||
+!
|
||||
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
|
||||
+!
|
||||
+
|
||||
+integer function foo ()
|
||||
+ implicit none
|
||||
+ integer :: x
|
||||
+ integer :: x ! { dg-error "basic type of" }
|
||||
+ x = 42
|
||||
+end function foo
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -66,61 +66,117 @@
|
||||
GDCFLAGS="$(GDCFLAGS) $${flags}" \
|
||||
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
||||
--- libcpp/macro.cc.jj 2019-01-09 13:01:21.420552123 +0100
|
||||
+++ libcpp/macro.cc 2019-01-11 18:18:17.736876285 +0100
|
||||
@@ -3256,8 +3256,6 @@ static cpp_macro *
|
||||
+++ libcpp/macro.cc 2024-11-30 13:16:41.163056391 +0100
|
||||
@@ -3680,8 +3680,6 @@ static cpp_macro *
|
||||
create_iso_definition (cpp_reader *pfile)
|
||||
{
|
||||
bool following_paste_op = false;
|
||||
- const char *paste_op_error_msg =
|
||||
- N_("'##' cannot appear at either end of a macro expansion");
|
||||
- N_("%<##%> cannot appear at either end of a macro expansion");
|
||||
unsigned int num_extra_tokens = 0;
|
||||
unsigned nparms = 0;
|
||||
cpp_hashnode **params = NULL;
|
||||
@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
@@ -3809,7 +3807,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
function-like macros, but not at the end. */
|
||||
if (following_paste_op)
|
||||
{
|
||||
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "'##' cannot appear at either end of a macro "
|
||||
+ "%<##%> cannot appear at either end of a macro "
|
||||
+ "expansion");
|
||||
goto out;
|
||||
}
|
||||
if (!vaopt_tracker.completed ())
|
||||
@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
@@ -3824,7 +3824,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
function-like macros, but not at the beginning. */
|
||||
if (macro->count == 1)
|
||||
{
|
||||
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "'##' cannot appear at either end of a macro "
|
||||
+ "%<##%> cannot appear at either end of a macro "
|
||||
+ "expansion");
|
||||
goto out;
|
||||
}
|
||||
|
||||
--- libcpp/expr.cc.jj 2019-01-09 13:01:22.415535734 +0100
|
||||
+++ libcpp/expr.cc 2019-01-11 18:16:23.444726882 +0100
|
||||
@@ -803,16 +803,17 @@ cpp_classify_number (cpp_reader *pfile,
|
||||
+++ libcpp/expr.cc 2024-11-30 13:14:52.468583689 +0100
|
||||
@@ -874,50 +874,54 @@ cpp_classify_number (cpp_reader *pfile,
|
||||
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
|
||||
&& CPP_OPTION (pfile, cpp_warn_long_long))
|
||||
{
|
||||
- const char *message = CPP_OPTION (pfile, cplusplus)
|
||||
- const char *message = CPP_OPTION (pfile, cplusplus)
|
||||
- ? N_("use of C++11 long long integer constant")
|
||||
- : N_("use of C99 long long integer constant");
|
||||
-
|
||||
if (CPP_OPTION (pfile, c99))
|
||||
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
|
||||
- cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
|
||||
- 0, message);
|
||||
+ 0, CPP_OPTION (pfile, cplusplus)
|
||||
+ ? N_("use of C++11 long long integer constant")
|
||||
+ : N_("use of C99 long long integer constant"));
|
||||
+ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location, 0,
|
||||
+ CPP_OPTION (pfile, cplusplus)
|
||||
+ ? N_("use of C++11 long long integer "
|
||||
+ "constant")
|
||||
+ : N_("use of C99 long long integer "
|
||||
+ "constant"));
|
||||
else
|
||||
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
|
||||
- virtual_location, 0, message);
|
||||
+ virtual_location, 0,
|
||||
+ CPP_OPTION (pfile, cplusplus)
|
||||
+ ? N_("use of C++11 long long integer constant")
|
||||
+ : N_("use of C99 long long integer constant"));
|
||||
+ ? N_("use of C++11 long long integer "
|
||||
+ "constant")
|
||||
+ : N_("use of C99 long long integer "
|
||||
+ "constant"));
|
||||
}
|
||||
|
||||
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T
|
||||
&& !CPP_OPTION (pfile, size_t_literals))
|
||||
- {
|
||||
- const char *message
|
||||
- = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
|
||||
- ? N_("use of C++23 %<size_t%> integer constant")
|
||||
- : N_("use of C++23 %<make_signed_t<size_t>%> integer constant");
|
||||
- cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
|
||||
- virtual_location, 0, message);
|
||||
- }
|
||||
+ cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
|
||||
+ virtual_location, 0,
|
||||
+ (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
|
||||
+ ? N_("use of C++23 %<size_t%> integer "
|
||||
+ "constant")
|
||||
+ : N_("use of C++23 %<make_signed_t<size_t>%> "
|
||||
+ "integer constant"));
|
||||
|
||||
if ((result & CPP_N_BITINT) != 0
|
||||
&& CPP_OPTION (pfile, cpp_warn_c11_c23_compat) != 0)
|
||||
{
|
||||
if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0)
|
||||
{
|
||||
- const char *message = N_("ISO C does not support literal "
|
||||
- "%<wb%> suffixes before C23");
|
||||
if (CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, true_false))
|
||||
cpp_pedwarning_with_line (pfile, CPP_W_C11_C23_COMPAT,
|
||||
- virtual_location, 0, message);
|
||||
+ virtual_location, 0,
|
||||
+ "ISO C does not support literal "
|
||||
+ "%<wb%> suffixes before C23");
|
||||
else
|
||||
cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT,
|
||||
- virtual_location, 0, message);
|
||||
- }
|
||||
- else if (!CPP_OPTION (pfile, true_false))
|
||||
- {
|
||||
- const char *message = N_("ISO C does not support literal "
|
||||
+ virtual_location, 0,
|
||||
+ "ISO C does not support literal "
|
||||
"%<wb%> suffixes before C23");
|
||||
- cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
|
||||
- virtual_location, 0, message);
|
||||
}
|
||||
+ else if (!CPP_OPTION (pfile, true_false))
|
||||
+ cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
|
||||
+ virtual_location, 0,
|
||||
+ "ISO C does not support literal "
|
||||
+ "%<wb%> suffixes before C23");
|
||||
}
|
||||
|
||||
result |= CPP_N_INTEGER;
|
||||
@ -26,7 +26,7 @@
|
||||
# Generate header and source files from the machine description,
|
||||
# and compile them.
|
||||
--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
|
||||
+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
|
||||
+++ gcc/graphite.h 2022-11-03 19:14:50.369690720 +0100
|
||||
@@ -24,6 +24,591 @@ along with GCC; see the file COPYING3.
|
||||
|
||||
#include "sese.h"
|
||||
@ -41,15 +41,15 @@
|
||||
+ DYNSYM (isl_aff_set_coefficient_si); \
|
||||
+ DYNSYM (isl_aff_set_constant_si); \
|
||||
+ DYNSYM (isl_aff_zero_on_domain); \
|
||||
+ DYNSYM (isl_band_free); \
|
||||
+ DYNSYM (isl_band_get_children); \
|
||||
+ DYNSYM (isl_band_get_partial_schedule); \
|
||||
+ DYNSYM (isl_band_has_children); \
|
||||
+ DYNSYM (isl_band_list_free); \
|
||||
+ DYNSYM (isl_band_list_get_band); \
|
||||
+ DYNSYM (isl_band_list_get_ctx); \
|
||||
+ DYNSYM (isl_band_list_n_band); \
|
||||
+ DYNSYM (isl_band_n_member); \
|
||||
+ /* DYNSYM (isl_band_free); */ \
|
||||
+ /* DYNSYM (isl_band_get_children); */ \
|
||||
+ /* DYNSYM (isl_band_get_partial_schedule); */ \
|
||||
+ /* DYNSYM (isl_band_has_children); */ \
|
||||
+ /* DYNSYM (isl_band_list_free); */ \
|
||||
+ /* DYNSYM (isl_band_list_get_band); */ \
|
||||
+ /* DYNSYM (isl_band_list_get_ctx); */ \
|
||||
+ /* DYNSYM (isl_band_list_n_band); */ \
|
||||
+ /* DYNSYM (isl_band_n_member); */ \
|
||||
+ DYNSYM (isl_basic_map_add_constraint); \
|
||||
+ DYNSYM (isl_basic_map_project_out); \
|
||||
+ DYNSYM (isl_basic_map_universe); \
|
||||
@ -91,7 +91,7 @@
|
||||
+ DYNSYM (isl_map_is_empty); \
|
||||
+ DYNSYM (isl_map_lex_ge); \
|
||||
+ DYNSYM (isl_map_lex_le); \
|
||||
+ DYNSYM (isl_map_n_out); \
|
||||
+ /* DYNSYM (isl_map_n_out); */ \
|
||||
+ DYNSYM (isl_map_range); \
|
||||
+ DYNSYM (isl_map_set_tuple_id); \
|
||||
+ DYNSYM (isl_map_universe); \
|
||||
@ -124,7 +124,7 @@
|
||||
+ DYNSYM (isl_pw_aff_sub); \
|
||||
+ DYNSYM (isl_pw_aff_zero_set); \
|
||||
+ DYNSYM (isl_schedule_free); \
|
||||
+ DYNSYM (isl_schedule_get_band_forest); \
|
||||
+ /* DYNSYM (isl_schedule_get_band_forest); */ \
|
||||
+ DYNSYM (isl_set_add_constraint); \
|
||||
+ DYNSYM (isl_set_add_dims); \
|
||||
+ DYNSYM (isl_set_apply); \
|
||||
@ -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__;
|
||||
@ -641,7 +641,7 @@
|
||||
+
|
||||
+ if (isl_pointers__.inited)
|
||||
+ return isl_pointers__.h != NULL;
|
||||
+ h = dlopen ("libisl.so.15", RTLD_LAZY);
|
||||
+ h = dlopen ("libisl.so.23", RTLD_LAZY);
|
||||
+ isl_pointers__.h = h;
|
||||
+ if (h == NULL)
|
||||
+ return false;
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -696,16 +696,16 @@
|
||||
|
||||
static void
|
||||
--- gcc/toplev.cc.jj 2017-02-19 13:02:31.000000000 +0100
|
||||
+++ gcc/toplev.cc 2017-02-19 16:50:25.536301350 +0100
|
||||
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
|
||||
+++ gcc/toplev.cc 2024-11-30 13:22:34.175096117 +0100
|
||||
@@ -100,6 +100,7 @@ along with GCC; see the file COPYING3.
|
||||
|
||||
#ifdef HAVE_isl
|
||||
#include <isl/version.h>
|
||||
+extern const char *get_isl_version (bool);
|
||||
#endif
|
||||
|
||||
static void general_init (const char *, bool);
|
||||
@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
|
||||
static void general_init (const char *, bool, unique_argv original_argv);
|
||||
@@ -652,7 +653,7 @@ print_version (FILE *file, const char *i
|
||||
#ifndef HAVE_isl
|
||||
"none"
|
||||
#else
|
||||
@ -2,12 +2,12 @@
|
||||
|
||||
* toplev.cc (toplev_main_argv): New variable.
|
||||
(toplev_main): Initialize it.
|
||||
* graphite.cc (init_isl_pointers): Load libisl.so.15 from gcc's private
|
||||
* graphite.cc (init_isl_pointers): Load libisl.so.23 from gcc's private
|
||||
directory.
|
||||
|
||||
--- gcc/toplev.cc.jj 2008-12-09 23:59:10.000000000 +0100
|
||||
+++ gcc/toplev.cc 2009-01-27 14:33:52.000000000 +0100
|
||||
@@ -113,6 +113,8 @@ static void finalize (bool);
|
||||
+++ gcc/toplev.cc 2024-11-30 13:26:05.085132543 +0100
|
||||
@@ -112,6 +112,8 @@ static void finalize ();
|
||||
static void crash_signal (int) ATTRIBUTE_NORETURN;
|
||||
static void compile_file (void);
|
||||
|
||||
@ -16,14 +16,14 @@
|
||||
/* Decoded options, and number of such options. */
|
||||
struct cl_decoded_option *save_decoded_options;
|
||||
unsigned int save_decoded_options_count;
|
||||
@@ -2239,6 +2241,8 @@ toplev::main (int argc, char **argv)
|
||||
@@ -2296,6 +2298,8 @@ toplev::main (int argc, char **argv)
|
||||
|
||||
expandargv (&argc, &argv);
|
||||
|
||||
+ toplev_main_argv = CONST_CAST2 (const char **, char **, argv);
|
||||
+
|
||||
/* Initialization of GCC's environment, and diagnostics. */
|
||||
general_init (argv[0], m_init_signals);
|
||||
general_init (argv[0], m_init_signals, std::move (original_argv));
|
||||
|
||||
--- gcc/graphite.cc.jj 2010-12-01 10:24:32.000000000 -0500
|
||||
+++ gcc/graphite.cc 2010-12-01 11:46:07.832118193 -0500
|
||||
@ -39,12 +39,12 @@
|
||||
|
||||
if (isl_pointers__.inited)
|
||||
return isl_pointers__.h != NULL;
|
||||
- h = dlopen ("libisl.so.15", RTLD_LAZY);
|
||||
- h = dlopen ("libisl.so.23", RTLD_LAZY);
|
||||
+ len = progname - toplev_main_argv[0];
|
||||
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.15");
|
||||
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.23");
|
||||
+ memcpy (buf, toplev_main_argv[0], len);
|
||||
+ strcpy (buf + len, "libisl.so.15");
|
||||
+ len += sizeof "libisl.so.15";
|
||||
+ strcpy (buf + len, "libisl.so.23");
|
||||
+ len += sizeof "libisl.so.23";
|
||||
+ p = strstr (buf, "/libexec/");
|
||||
+ if (p != NULL)
|
||||
+ {
|
||||
@ -61,7 +61,7 @@
|
||||
+ {
|
||||
+ len = progname - toplev_main_argv[0];
|
||||
+ memcpy (buf, toplev_main_argv[0], len);
|
||||
+ strcpy (buf + len, "libisl.so.15");
|
||||
+ strcpy (buf + len, "libisl.so.23");
|
||||
+ }
|
||||
+ }
|
||||
+ if (h == NULL)
|
||||
1970
gcc15-libgfortran-compat.patch
Normal file
1970
gcc15-libgfortran-compat.patch
Normal file
File diff suppressed because it is too large
Load Diff
10914
gcc15-libstdc++-compat.patch
Normal file
10914
gcc15-libstdc++-compat.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -4,21 +4,21 @@
|
||||
<a class="link" href="https://www.fsf.org" target="_top">FSF
|
||||
</a>
|
||||
</p><p>
|
||||
+ Release 12.1.1
|
||||
+ Release 15.1.1
|
||||
+ </p><p>
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation
|
||||
License, Version 1.2 or any later version published by the
|
||||
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
|
||||
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
|
||||
+++ libstdc++-v3/doc/html/api.html 2024-11-30 13:30:16.607594623 +0100
|
||||
@@ -20,7 +20,9 @@
|
||||
member functions for the library classes, finding out what is in a
|
||||
particular include file, looking at inheritance diagrams, etc.
|
||||
</p><p>
|
||||
- The API documentation, rendered into HTML, can be viewed online
|
||||
+ The API documentation, rendered into HTML, can be viewed locally
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 12.1.1 release</a>,
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 15.1.1 release</a>,
|
||||
+ online
|
||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||
<a class="link" href="https://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||
and
|
||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
|
||||
<a class="link" href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
|
||||
@ -5,7 +5,7 @@ libtool sucks.
|
||||
rpath="$finalize_rpath"
|
||||
test "$mode" != relink && rpath="$compile_rpath$rpath"
|
||||
for libdir in $rpath; do
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
|
||||
if test -n "$hardcode_libdir_flag_spec"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
if test -z "$hardcode_libdirs"; then
|
||||
@ -13,7 +13,7 @@ libtool sucks.
|
||||
rpath=
|
||||
hardcode_libdirs=
|
||||
for libdir in $compile_rpath $finalize_rpath; do
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
|
||||
if test -n "$hardcode_libdir_flag_spec"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
if test -z "$hardcode_libdirs"; then
|
||||
@ -21,7 +21,7 @@ libtool sucks.
|
||||
rpath=
|
||||
hardcode_libdirs=
|
||||
for libdir in $finalize_rpath; do
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
|
||||
if test -n "$hardcode_libdir_flag_spec"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
if test -z "$hardcode_libdirs"; then
|
||||
393
gcc15-nvptx-offload.patch
Normal file
393
gcc15-nvptx-offload.patch
Normal file
@ -0,0 +1,393 @@
|
||||
--- libstdc++-v3/configure.ac.jj 2025-06-04 19:13:51.905392301 +0200
|
||||
+++ libstdc++-v3/configure.ac 2025-06-04 19:14:04.088236951 +0200
|
||||
@@ -710,6 +710,13 @@ CCAS='$(CXX)'
|
||||
CCASFLAGS='$(CXXFLAGS)'
|
||||
AC_SUBST(CCAS)
|
||||
AC_SUBST(CCASFLAGS)
|
||||
+case "$host" in
|
||||
+ *amdgcn*|*ptx*)
|
||||
+ build_nonshared=no;;
|
||||
+ *)
|
||||
+ build_nonshared=yes;;
|
||||
+esac
|
||||
+AM_CONDITIONAL([BUILD_NONSHARED], [test x${build_nonshared} = xyes])
|
||||
|
||||
dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros,
|
||||
dnl which can all be called multiple times as needed, plus one (different)
|
||||
--- libstdc++-v3/configure.jj 2025-06-04 19:13:51.911392225 +0200
|
||||
+++ libstdc++-v3/configure 2025-06-04 19:14:48.940665026 +0200
|
||||
@@ -633,6 +633,8 @@ ac_subst_vars='am__EXEEXT_FALSE
|
||||
am__EXEEXT_TRUE
|
||||
LTLIBOBJS
|
||||
LIBOBJS
|
||||
+BUILD_NONSHARED_FALSE
|
||||
+BUILD_NONSHARED_TRUE
|
||||
CCASFLAGS
|
||||
CCAS
|
||||
get_gcc_base_ver
|
||||
@@ -12282,7 +12284,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 12285 "configure"
|
||||
+#line 12287 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -12388,7 +12390,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 12391 "configure"
|
||||
+#line 12393 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -16184,7 +16186,7 @@ $as_echo "$glibcxx_cv_atomic_long_long"
|
||||
# Fake what AC_TRY_COMPILE does.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16187 "configure"
|
||||
+#line 16189 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef bool atomic_type;
|
||||
@@ -16219,7 +16221,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6;
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16222 "configure"
|
||||
+#line 16224 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef short atomic_type;
|
||||
@@ -16254,7 +16256,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6;
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16257 "configure"
|
||||
+#line 16259 "configure"
|
||||
int main()
|
||||
{
|
||||
// NB: _Atomic_word not necessarily int.
|
||||
@@ -16290,7 +16292,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
|
||||
rm -f conftest*
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16293 "configure"
|
||||
+#line 16295 "configure"
|
||||
int main()
|
||||
{
|
||||
typedef long long atomic_type;
|
||||
@@ -16447,7 +16449,7 @@ $as_echo "mutex" >&6; }
|
||||
# unnecessary for this test.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16450 "configure"
|
||||
+#line 16452 "configure"
|
||||
int main()
|
||||
{
|
||||
_Decimal32 d1;
|
||||
@@ -16489,7 +16491,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||
# unnecessary for this test.
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
-#line 16492 "configure"
|
||||
+#line 16494 "configure"
|
||||
template<typename T1, typename T2>
|
||||
struct same
|
||||
{ typedef T2 type; };
|
||||
@@ -55807,6 +55809,20 @@ CCAS='$(CXX)'
|
||||
CCASFLAGS='$(CXXFLAGS)'
|
||||
|
||||
|
||||
+case "$host" in
|
||||
+ *amdgcn*|*ptx*)
|
||||
+ build_nonshared=no;;
|
||||
+ *)
|
||||
+ build_nonshared=yes;;
|
||||
+esac
|
||||
+ if test x${build_nonshared} = xyes; then
|
||||
+ BUILD_NONSHARED_TRUE=
|
||||
+ BUILD_NONSHARED_FALSE='#'
|
||||
+else
|
||||
+ BUILD_NONSHARED_TRUE='#'
|
||||
+ BUILD_NONSHARED_FALSE=
|
||||
+fi
|
||||
+
|
||||
|
||||
ac_config_files="$ac_config_files Makefile"
|
||||
|
||||
@@ -56106,6 +56122,10 @@ if test -z "${INCLUDE_DIR_NOTPARALLEL_TR
|
||||
as_fn_error $? "conditional \"INCLUDE_DIR_NOTPARALLEL\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${BUILD_NONSHARED_TRUE}" && test -z "${BUILD_NONSHARED_FALSE}"; then
|
||||
+ as_fn_error $? "conditional \"BUILD_NONSHARED\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
|
||||
: "${CONFIG_STATUS=./config.status}"
|
||||
ac_write_fail=0
|
||||
--- libstdc++-v3/src/Makefile.am.jj 2025-06-04 19:13:51.888392518 +0200
|
||||
+++ libstdc++-v3/src/Makefile.am 2025-06-04 19:14:39.270788328 +0200
|
||||
@@ -42,10 +42,18 @@ backtrace_dir =
|
||||
experimental_dir =
|
||||
endif
|
||||
|
||||
+if BUILD_NONSHARED
|
||||
+nonshared_subdirs = nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
|
||||
+nonshared_libs = libstdc++_nonshared80.la libstdc++_nonshared110.la libstdc++_nonshared140.la
|
||||
+else
|
||||
+nonshared_subdirs =
|
||||
+nonshared_libs =
|
||||
+endif
|
||||
+
|
||||
## Keep this list sync'd with acinclude.m4:GLIBCXX_CONFIGURE.
|
||||
SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \
|
||||
$(filesystem_dir) $(backtrace_dir) $(experimental_dir) \
|
||||
- nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
|
||||
+ $(nonshared_subdirs)
|
||||
|
||||
# Cross compiler support.
|
||||
if VTV_CYGMIN
|
||||
@@ -54,9 +62,7 @@ else
|
||||
toolexeclib_LTLIBRARIES = libstdc++.la
|
||||
endif
|
||||
|
||||
-noinst_LTLIBRARIES = libstdc++_nonshared80.la \
|
||||
- libstdc++_nonshared110.la \
|
||||
- libstdc++_nonshared140.la
|
||||
+noinst_LTLIBRARIES = $(nonshared_libs)
|
||||
|
||||
if VTV_CYGMIN
|
||||
vtv_stubs.cc:
|
||||
--- libstdc++-v3/src/Makefile.in.jj 2025-06-04 19:14:04.096236849 +0200
|
||||
+++ libstdc++-v3/src/Makefile.in 2025-06-04 19:14:53.060612491 +0200
|
||||
@@ -174,12 +174,15 @@ AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared110_la_rpath =
|
||||
am_libstdc___nonshared140_la_OBJECTS =
|
||||
libstdc___nonshared140_la_OBJECTS = \
|
||||
$(am_libstdc___nonshared140_la_OBJECTS)
|
||||
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared140_la_rpath =
|
||||
am_libstdc___nonshared80_la_OBJECTS =
|
||||
libstdc___nonshared80_la_OBJECTS = \
|
||||
$(am_libstdc___nonshared80_la_OBJECTS)
|
||||
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared80_la_rpath =
|
||||
libvtv_la_LIBADD =
|
||||
@VTV_CYGMIN_TRUE@am_libvtv_la_OBJECTS = vtv_stubs.lo
|
||||
libvtv_la_OBJECTS = $(am_libvtv_la_OBJECTS)
|
||||
@@ -523,18 +526,19 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPF
|
||||
@GLIBCXX_HOSTED_FALSE@backtrace_dir =
|
||||
@GLIBCXX_HOSTED_FALSE@experimental_dir =
|
||||
@GLIBCXX_HOSTED_TRUE@experimental_dir = experimental
|
||||
+@BUILD_NONSHARED_FALSE@nonshared_subdirs =
|
||||
+@BUILD_NONSHARED_TRUE@nonshared_subdirs = nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
|
||||
+@BUILD_NONSHARED_FALSE@nonshared_libs =
|
||||
+@BUILD_NONSHARED_TRUE@nonshared_libs = libstdc++_nonshared80.la libstdc++_nonshared110.la libstdc++_nonshared140.la
|
||||
SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \
|
||||
$(filesystem_dir) $(backtrace_dir) $(experimental_dir) \
|
||||
- nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
|
||||
+ $(nonshared_subdirs)
|
||||
|
||||
@VTV_CYGMIN_FALSE@toolexeclib_LTLIBRARIES = libstdc++.la
|
||||
|
||||
# Cross compiler support.
|
||||
@VTV_CYGMIN_TRUE@toolexeclib_LTLIBRARIES = libvtv.la libstdc++.la
|
||||
-noinst_LTLIBRARIES = libstdc++_nonshared80.la \
|
||||
- libstdc++_nonshared110.la \
|
||||
- libstdc++_nonshared140.la
|
||||
-
|
||||
+noinst_LTLIBRARIES = $(nonshared_libs)
|
||||
@VTV_CYGMIN_TRUE@libvtv_la_SOURCES = vtv_stubs.cc
|
||||
@VTV_CYGMIN_TRUE@libvtv_la_LDFLAGS = $(lt_host_flags)
|
||||
@VTV_CYGMIN_TRUE@libvtv_la_AM_CXXFLAGS = \
|
||||
@@ -851,13 +855,13 @@ libstdc++.la: $(libstdc___la_OBJECTS) $(
|
||||
$(AM_V_GEN)$(libstdc___la_LINK) $(am_libstdc___la_rpath) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
|
||||
|
||||
libstdc++_nonshared110.la: $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared110_la_DEPENDENCIES)
|
||||
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared110_la_rpath) $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_LIBADD) $(LIBS)
|
||||
|
||||
libstdc++_nonshared140.la: $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared140_la_DEPENDENCIES)
|
||||
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared140_la_rpath) $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_LIBADD) $(LIBS)
|
||||
|
||||
libstdc++_nonshared80.la: $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared80_la_DEPENDENCIES)
|
||||
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared80_la_rpath) $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_LIBADD) $(LIBS)
|
||||
|
||||
libvtv.la: $(libvtv_la_OBJECTS) $(libvtv_la_DEPENDENCIES) $(EXTRA_libvtv_la_DEPENDENCIES)
|
||||
$(AM_V_GEN)$(libvtv_la_LINK) $(am_libvtv_la_rpath) $(libvtv_la_OBJECTS) $(libvtv_la_LIBADD) $(LIBS)
|
||||
|
||||
--- libgfortran/configure.ac.orig 2025-06-04 15:39:38.229810679 -0400
|
||||
+++ libgfortran/configure.ac 2025-06-04 15:38:52.859340347 -0400
|
||||
@@ -752,6 +752,14 @@ if test "$libgfor_cv_posix_getpwuid_r" =
|
||||
fi
|
||||
|
||||
|
||||
+case "$host" in
|
||||
+ *amdgcn*|*ptx*)
|
||||
+ build_nonshared=no;;
|
||||
+ *)
|
||||
+ build_nonshared=yes;;
|
||||
+esac
|
||||
+AM_CONDITIONAL([BUILD_NONSHARED], [test x${build_nonshared} = xyes])
|
||||
+
|
||||
# Check out attribute support.
|
||||
LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY
|
||||
LIBGFOR_CHECK_ATTRIBUTE_ALIAS
|
||||
--- libgfortran/configure.orig 2025-06-04 15:39:21.171243811 -0400
|
||||
+++ libgfortran/configure 2025-06-04 15:39:54.426500140 -0400
|
||||
@@ -639,6 +639,8 @@ LIBOBJS
|
||||
get_gcc_base_ver
|
||||
HAVE_AVX128_FALSE
|
||||
HAVE_AVX128_TRUE
|
||||
+BUILD_NONSHARED_FALSE
|
||||
+BUILD_NONSHARED_TRUE
|
||||
tmake_file
|
||||
IEEE_FLAGS
|
||||
IEEE_SUPPORT
|
||||
@@ -12847,7 +12849,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 12850 "configure"
|
||||
+#line 12852 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -12953,7 +12955,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
-#line 12956 "configure"
|
||||
+#line 12958 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -30901,6 +30903,20 @@ $as_echo "#define HAVE_POSIX_GETPWUID_R
|
||||
|
||||
fi
|
||||
|
||||
+case "$host" in
|
||||
+ *amdgcn*|*ptx*)
|
||||
+ build_nonshared=no;;
|
||||
+ *)
|
||||
+ build_nonshared=yes;;
|
||||
+esac
|
||||
+ if test x${build_nonshared} = xyes; then
|
||||
+ BUILD_NONSHARED_TRUE=
|
||||
+ BUILD_NONSHARED_FALSE='#'
|
||||
+else
|
||||
+ BUILD_NONSHARED_TRUE='#'
|
||||
+ BUILD_NONSHARED_FALSE=
|
||||
+fi
|
||||
+
|
||||
|
||||
# Check out attribute support.
|
||||
|
||||
@@ -31721,6 +31737,10 @@ if test -z "${IEEE_SUPPORT_TRUE}" && tes
|
||||
as_fn_error $? "conditional \"IEEE_SUPPORT\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${BUILD_NONSHARED_TRUE}" && test -z "${BUILD_NONSHARED_FALSE}"; then
|
||||
+ as_fn_error $? "conditional \"BUILD_NONSHARED\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
if test -z "${HAVE_AVX128_TRUE}" && test -z "${HAVE_AVX128_FALSE}"; then
|
||||
as_fn_error $? "conditional \"HAVE_AVX128\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
--- libgfortran/Makefile.am.orig 2025-06-04 15:41:28.901589188 -0400
|
||||
+++ libgfortran/Makefile.am 2025-06-04 15:45:52.920898503 -0400
|
||||
@@ -42,6 +42,12 @@ extra_darwin_ldflags_libgfortran += -Wc,
|
||||
extra_darwin_ldflags_libgfortran += -Wl,-rpath,@loader_path
|
||||
endif
|
||||
|
||||
+if BUILD_NONSHARED
|
||||
+nonshared_libs = libgfortran_nonshared80.la libgfortran_nonshared110.la libgfortran_nonshared140.la
|
||||
+else
|
||||
+nonshared_libs =
|
||||
+endif
|
||||
+
|
||||
gfor_c_HEADERS = ISO_Fortran_binding.h
|
||||
gfor_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
|
||||
|
||||
@@ -49,8 +55,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi
|
||||
$(lt_host_flags)
|
||||
|
||||
toolexeclib_LTLIBRARIES = libgfortran.la
|
||||
-noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la \
|
||||
- libgfortran_nonshared140.la
|
||||
+noinst_LTLIBRARIES = $(nonshared_libs)
|
||||
toolexeclib_DATA = libgfortran.spec
|
||||
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
|
||||
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
|
||||
--- libgfortran/Makefile.in.orig 2025-06-04 15:41:37.339898385 -0400
|
||||
+++ libgfortran/Makefile.in 2025-06-04 15:46:25.513950233 -0400
|
||||
@@ -781,11 +781,13 @@ AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared110_la_rpath =
|
||||
libgfortran_nonshared140_la_LIBADD =
|
||||
am_libgfortran_nonshared140_la_OBJECTS = $(am__objects_66) \
|
||||
$(am__objects_67) nonshared-in_unpack_class.lo
|
||||
libgfortran_nonshared140_la_OBJECTS = \
|
||||
$(am_libgfortran_nonshared140_la_OBJECTS)
|
||||
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared140_la_rpath =
|
||||
libgfortran_nonshared80_la_LIBADD =
|
||||
am__objects_68 = nonshared-ISO_Fortran_binding.lo \
|
||||
nonshared-in_unpack_class.lo
|
||||
@@ -815,6 +817,7 @@ am_libgfortran_nonshared80_la_OBJECTS =
|
||||
runtime/nonshared-error.lo $(am__objects_67)
|
||||
libgfortran_nonshared80_la_OBJECTS = \
|
||||
$(am_libgfortran_nonshared80_la_OBJECTS)
|
||||
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared80_la_rpath =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
@@ -1078,15 +1081,15 @@ gcc_version := $(shell @get_gcc_base_ver
|
||||
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_dep = gfortran.ver-sun gfortran.ver
|
||||
extra_darwin_ldflags_libgfortran = @extra_ldflags_libgfortran@ \
|
||||
$(am__append_1)
|
||||
+@BUILD_NONSHARED_FALSE@nonshared_libs =
|
||||
+@BUILD_NONSHARED_TRUE@nonshared_libs = libgfortran_nonshared80.la libgfortran_nonshared110.la libgfortran_nonshared140.la
|
||||
gfor_c_HEADERS = ISO_Fortran_binding.h
|
||||
gfor_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
|
||||
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
|
||||
$(lt_host_flags)
|
||||
|
||||
toolexeclib_LTLIBRARIES = libgfortran.la
|
||||
-noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la \
|
||||
- libgfortran_nonshared140.la
|
||||
-
|
||||
+noinst_LTLIBRARIES = $(nonshared_libs)
|
||||
toolexeclib_DATA = libgfortran.spec
|
||||
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
|
||||
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
|
||||
@@ -4239,10 +4242,10 @@ runtime/nonshared-in_pack_class.lo: runt
|
||||
runtime/$(DEPDIR)/$(am__dirstamp)
|
||||
|
||||
libgfortran_nonshared110.la: $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared110_la_DEPENDENCIES)
|
||||
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared110_la_rpath) $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_LIBADD) $(LIBS)
|
||||
|
||||
libgfortran_nonshared140.la: $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared140_la_DEPENDENCIES)
|
||||
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared140_la_rpath) $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_LIBADD) $(LIBS)
|
||||
ieee/nonshared-ieee_arithmetic.lo: ieee/$(am__dirstamp) \
|
||||
ieee/$(DEPDIR)/$(am__dirstamp)
|
||||
io/nonshared-transfer.lo: io/$(am__dirstamp) \
|
||||
@@ -4251,7 +4254,7 @@ runtime/nonshared-error.lo: runtime/$(am
|
||||
runtime/$(DEPDIR)/$(am__dirstamp)
|
||||
|
||||
libgfortran_nonshared80.la: $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared80_la_DEPENDENCIES)
|
||||
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_LIBADD) $(LIBS)
|
||||
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared80_la_rpath) $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
76
gcc15-pr119006.patch
Normal file
76
gcc15-pr119006.patch
Normal file
@ -0,0 +1,76 @@
|
||||
2025-02-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR ipa/119006
|
||||
* ipa-icf-gimple.cc (func_checker::compare_operand): If t1 and t2
|
||||
are ADDR_EXPRs, call operand_equal_p on their operands rather than on
|
||||
the ADDR_EXPRs themselves. Formatting fix.
|
||||
|
||||
* g++.dg/opt/pr119006.C: New test.
|
||||
|
||||
--- gcc/ipa-icf-gimple.cc.jj 2025-02-01 00:50:02.080774328 +0100
|
||||
+++ gcc/ipa-icf-gimple.cc 2025-02-27 14:35:19.931183246 +0100
|
||||
@@ -437,12 +437,23 @@ func_checker::compare_operand (tree t1,
|
||||
("compare_ao_refs failed (dependence clique difference)");
|
||||
gcc_unreachable ();
|
||||
}
|
||||
+ else if (TREE_CODE (t1) == ADDR_EXPR && TREE_CODE (t2) == ADDR_EXPR)
|
||||
+ {
|
||||
+ /* For ADDR_EXPR compare the operands of the ADDR_EXPR rather than
|
||||
+ the ADDR_EXPRs themselves. operand_equal_p will compare the
|
||||
+ operands with OEP_ADDRESS_OF and only care about the value
|
||||
+ of the ADDR_EXPR, rather than e.g. types of MEM_REFs in there.
|
||||
+ Some optimizations use such details though, see PR119006. */
|
||||
+ if (operand_equal_p (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0),
|
||||
+ OEP_MATCH_SIDE_EFFECTS))
|
||||
+ return true;
|
||||
+ return return_false_with_msg ("operand_equal_p failed");
|
||||
+ }
|
||||
else
|
||||
{
|
||||
if (operand_equal_p (t1, t2, OEP_MATCH_SIDE_EFFECTS))
|
||||
return true;
|
||||
- return return_false_with_msg
|
||||
- ("operand_equal_p failed");
|
||||
+ return return_false_with_msg ("operand_equal_p failed");
|
||||
}
|
||||
}
|
||||
|
||||
--- gcc/testsuite/g++.dg/opt/pr119006.C.jj 2025-02-27 14:37:05.952707350 +0100
|
||||
+++ gcc/testsuite/g++.dg/opt/pr119006.C 2025-02-27 14:36:29.251218260 +0100
|
||||
@@ -0,0 +1,36 @@
|
||||
+// PR ipa/119006
|
||||
+// { dg-do run { target c++11 } }
|
||||
+// { dg-options "-O2 -fwhole-program" }
|
||||
+
|
||||
+struct A {
|
||||
+ bool operator== (const char *x) const { return x && !__builtin_strcmp (a, x); }
|
||||
+ char a[11];
|
||||
+};
|
||||
+
|
||||
+struct B {
|
||||
+ bool operator== (const char *x) const { return x && !__builtin_strcmp (a, x); }
|
||||
+ bool operator!= (const char *x) const { return !(*this == x); }
|
||||
+ char a[128];
|
||||
+};
|
||||
+
|
||||
+[[gnu::noinline,gnu::used]] int
|
||||
+foo (const A& lhs, const char* rhs)
|
||||
+{
|
||||
+ return lhs == rhs;
|
||||
+}
|
||||
+
|
||||
+constexpr const char *t = "abcdefghijklmno";
|
||||
+
|
||||
+[[gnu::noinline,gnu::used]] void
|
||||
+bar (B x)
|
||||
+{
|
||||
+ if (x != t) __builtin_abort ();
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ B b;
|
||||
+ __builtin_strcpy (b.a, t);
|
||||
+ bar (b);
|
||||
+}
|
||||
54
gcc15-pr123273.patch
Normal file
54
gcc15-pr123273.patch
Normal file
@ -0,0 +1,54 @@
|
||||
2026-01-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR preprocessor/123273
|
||||
* lex.cc (cpp_directive_only_process): Only go to done_comment
|
||||
for '/' if star is true and esc is false. When seeing '\\' with
|
||||
esc set to true, clear esc as well as star instead of keeping esc
|
||||
set.
|
||||
|
||||
* c-c++-common/cpp/dir-only-10.c: New test.
|
||||
* c-c++-common/cpp/dir-only-11.c: New test.
|
||||
|
||||
--- libcpp/lex.cc.jj 2026-01-02 09:56:10.417332292 +0100
|
||||
+++ libcpp/lex.cc 2026-01-05 16:40:26.413766032 +0100
|
||||
@@ -5461,7 +5461,13 @@ cpp_directive_only_process (cpp_reader *
|
||||
switch (c)
|
||||
{
|
||||
case '\\':
|
||||
- esc = true;
|
||||
+ if (esc)
|
||||
+ {
|
||||
+ star = false;
|
||||
+ esc = false;
|
||||
+ }
|
||||
+ else
|
||||
+ esc = true;
|
||||
break;
|
||||
|
||||
case '\r':
|
||||
@@ -5492,7 +5498,7 @@ cpp_directive_only_process (cpp_reader *
|
||||
break;
|
||||
|
||||
case '/':
|
||||
- if (star)
|
||||
+ if (star && !esc)
|
||||
goto done_comment;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
--- gcc/testsuite/c-c++-common/cpp/dir-only-10.c.jj 2026-01-05 17:04:26.144566116 +0100
|
||||
+++ gcc/testsuite/c-c++-common/cpp/dir-only-10.c 2026-01-05 17:05:02.226946201 +0100
|
||||
@@ -0,0 +1,5 @@
|
||||
+/* PR preprocessor/123273 */
|
||||
+/* { dg-do preprocess } */
|
||||
+/* { dg-options -fdirectives-only } */
|
||||
+
|
||||
+/* *\/""" */
|
||||
--- gcc/testsuite/c-c++-common/cpp/dir-only-11.c.jj 2026-01-05 17:05:18.498666647 +0100
|
||||
+++ gcc/testsuite/c-c++-common/cpp/dir-only-11.c 2026-01-05 17:06:17.574651691 +0100
|
||||
@@ -0,0 +1,6 @@
|
||||
+/* PR preprocessor/123273 */
|
||||
+/* { dg-do preprocess } */
|
||||
+/* { dg-options -fdirectives-only } */
|
||||
+
|
||||
+/* *\\
|
||||
+/""" */
|
||||
94
gcc15-pr123667.patch
Normal file
94
gcc15-pr123667.patch
Normal file
@ -0,0 +1,94 @@
|
||||
2026-01-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/123667
|
||||
* semantics.cc (finish_decltype_type): Allow a structured binding
|
||||
for ptds.saved to have DECL_HAS_VALUE_EXPR_P cleared, if it is
|
||||
not within current_function_decl, but in that case assert that
|
||||
lookup_decomp_type succeeded.
|
||||
|
||||
* g++.dg/cpp1z/decomp66.C: New test.
|
||||
* g++.dg/cpp1z/decomp67.C: New test.
|
||||
|
||||
--- gcc/cp/semantics.cc.jj 2026-01-15 16:33:46.000000000 +0100
|
||||
+++ gcc/cp/semantics.cc 2026-01-21 17:55:14.272577246 +0100
|
||||
@@ -13062,12 +13062,16 @@ finish_decltype_type (tree expr, bool id
|
||||
{
|
||||
if (ptds.saved)
|
||||
{
|
||||
- gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
|
||||
+ gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr)
|
||||
+ || (DECL_CONTEXT (expr)
|
||||
+ != current_function_decl));
|
||||
/* DECL_HAS_VALUE_EXPR_P is always set if
|
||||
- processing_template_decl. If lookup_decomp_type
|
||||
+ processing_template_decl at least for structured bindings
|
||||
+ within the template. If lookup_decomp_type
|
||||
returns non-NULL, it is the tuple case. */
|
||||
if (tree ret = lookup_decomp_type (expr))
|
||||
return ret;
|
||||
+ gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
|
||||
}
|
||||
if (DECL_HAS_VALUE_EXPR_P (expr))
|
||||
/* Expr is an array or struct subobject proxy, handle
|
||||
--- gcc/testsuite/g++.dg/cpp1z/decomp66.C.jj 2026-01-21 17:59:28.122275457 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp1z/decomp66.C 2026-01-21 17:58:30.737247916 +0100
|
||||
@@ -0,0 +1,23 @@
|
||||
+// PR c++/123667
|
||||
+// { dg-do compile { target c++14 } }
|
||||
+// { dg-options "" }
|
||||
+
|
||||
+namespace std {
|
||||
+ template <typename T> struct tuple_size;
|
||||
+ template <int, typename> struct tuple_element;
|
||||
+}
|
||||
+
|
||||
+struct A {
|
||||
+ int i;
|
||||
+ template <int I> int &get () { return i; }
|
||||
+};
|
||||
+
|
||||
+template <> struct std::tuple_size <A> { static const int value = 2; };
|
||||
+template <int I> struct std::tuple_element <I,A> { using type = int; };
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+ [] (auto t) { using z = decltype (x); } (1);
|
||||
+}
|
||||
--- gcc/testsuite/g++.dg/cpp1z/decomp67.C.jj 2026-01-21 17:59:31.139224331 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp1z/decomp67.C 2026-01-21 17:59:07.235629406 +0100
|
||||
@@ -0,0 +1,33 @@
|
||||
+// PR c++/123667
|
||||
+// { dg-do compile { target c++11 } }
|
||||
+// { dg-options "" }
|
||||
+
|
||||
+namespace std {
|
||||
+ template <typename T> struct tuple_size;
|
||||
+ template <int, typename> struct tuple_element;
|
||||
+}
|
||||
+
|
||||
+struct A {
|
||||
+ int i;
|
||||
+ template <int I> int &get () { return i; }
|
||||
+};
|
||||
+
|
||||
+template <> struct std::tuple_size <A> { static const int value = 2; };
|
||||
+template <int I> struct std::tuple_element <I,A> { using type = int; };
|
||||
+
|
||||
+auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+
|
||||
+template <int N>
|
||||
+void
|
||||
+foo ()
|
||||
+{
|
||||
+ using a = decltype (x);
|
||||
+ auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+ using b = decltype (x);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+bar ()
|
||||
+{
|
||||
+ foo <42> ();
|
||||
+}
|
||||
86
gcc15-pr123737.patch
Normal file
86
gcc15-pr123737.patch
Normal file
@ -0,0 +1,86 @@
|
||||
2026-01-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/123737
|
||||
* parser.cc (cp_parser_expression): Don't handle CPP_EMBED just
|
||||
as the last byte in it if expression has or might have overloaded
|
||||
type. In that case call build_x_compound_expr for each byte
|
||||
in CPP_EMBED separately.
|
||||
|
||||
* g++.dg/cpp/embed-28.C: New test.
|
||||
* g++.dg/parse/comma3.C: New test.
|
||||
|
||||
--- gcc/cp/parser.cc.jj 2026-01-20 01:13:20.324260446 +0100
|
||||
+++ gcc/cp/parser.cc 2026-01-21 14:04:32.086336386 +0100
|
||||
@@ -12132,10 +12132,24 @@ cp_parser_expression (cp_parser* parser,
|
||||
and one CPP_NUMBER plus CPP_COMMA before it and one
|
||||
CPP_COMMA plus CPP_NUMBER after it is guaranteed by
|
||||
the preprocessor. Thus, parse the whole CPP_EMBED just
|
||||
- as a single INTEGER_CST, the last byte in it. */
|
||||
+ as a single INTEGER_CST, the last byte in it. Though,
|
||||
+ don't use that shortcut if the comma operator could be
|
||||
+ overloaded. */
|
||||
tree raw_data = cp_lexer_peek_token (parser->lexer)->u.value;
|
||||
location_t loc = cp_lexer_peek_token (parser->lexer)->location;
|
||||
cp_lexer_consume_token (parser->lexer);
|
||||
+ if (OVERLOAD_TYPE_P (TREE_TYPE (expression))
|
||||
+ || type_dependent_expression_p (expression))
|
||||
+ for (unsigned i = 0; i < RAW_DATA_LENGTH (raw_data) - 1U; ++i)
|
||||
+ {
|
||||
+ assignment_expression
|
||||
+ = *raw_data_iterator (raw_data, i);
|
||||
+ assignment_expression.set_location (loc);
|
||||
+ expression
|
||||
+ = build_x_compound_expr (loc, expression,
|
||||
+ assignment_expression, NULL_TREE,
|
||||
+ complain_flags (decltype_p));
|
||||
+ }
|
||||
assignment_expression
|
||||
= *raw_data_iterator (raw_data, RAW_DATA_LENGTH (raw_data) - 1);
|
||||
assignment_expression.set_location (loc);
|
||||
--- gcc/testsuite/g++.dg/cpp/embed-28.C.jj 2026-01-21 14:11:14.617520864 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp/embed-28.C 2026-01-21 14:11:01.121749695 +0100
|
||||
@@ -0,0 +1,19 @@
|
||||
+// PR c++/123737
|
||||
+// { dg-do run }
|
||||
+// { dg-options "--embed-dir=${srcdir}/c-c++-common/cpp/embed-dir" }
|
||||
+
|
||||
+struct A {
|
||||
+ A (int x) : a (0), e (x) {}
|
||||
+ unsigned long a, e;
|
||||
+ A &operator, (int) { ++a; return *this; }
|
||||
+ ~A () { if (a != e) __builtin_abort (); }
|
||||
+};
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ A a = 231;
|
||||
+ a,
|
||||
+#embed <magna-carta.txt> limit (231)
|
||||
+ ;
|
||||
+}
|
||||
--- gcc/testsuite/g++.dg/parse/comma3.C.jj 2026-01-21 14:08:53.834908004 +0100
|
||||
+++ gcc/testsuite/g++.dg/parse/comma3.C 2026-01-21 12:15:02.334948163 +0100
|
||||
@@ -0,0 +1,22 @@
|
||||
+// PR c++/123737
|
||||
+// { dg-do run }
|
||||
+
|
||||
+struct A {
|
||||
+ A (int x) : a (0), e (x) {}
|
||||
+ unsigned long a, e;
|
||||
+ A &operator, (int) { ++a; return *this; }
|
||||
+ ~A () { if (a != e) __builtin_abort (); }
|
||||
+};
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ A a = 131;
|
||||
+ a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
|
||||
+}
|
||||
21
gcc15-rh1574936.patch
Normal file
21
gcc15-rh1574936.patch
Normal file
@ -0,0 +1,21 @@
|
||||
crt files and statically linked libgcc objects cause false positives
|
||||
in annobin coverage, so we add the assembler flag to generate notes
|
||||
for them.
|
||||
|
||||
The patch also adds notes to libgcc_s.so, but this is harmless because
|
||||
these notes only confer that there is no other annobin markup.
|
||||
|
||||
2018-07-25 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* config/t-linux (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
|
||||
-Wa,--generate-missing-build-notes=yes.
|
||||
|
||||
--- libgcc/config/t-linux 2022-12-15 19:25:20.581394950 +0100
|
||||
+++ libgcc/config/t-linux 2023-03-21 22:00:37.054478562 +0100
|
||||
@@ -1,3 +1,6 @@
|
||||
# Override t-slibgcc-elf-ver to export some libgcc symbols with
|
||||
# the symbol versions that glibc used.
|
||||
SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
|
||||
+
|
||||
+LIBGCC2_CFLAGS += -Wa,--generate-missing-build-notes=yes
|
||||
+CRTSTUFF_CFLAGS += -Wa,--generate-missing-build-notes=yes
|
||||
@ -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
|
||||
85
isl-rh2155127.patch
Normal file
85
isl-rh2155127.patch
Normal file
@ -0,0 +1,85 @@
|
||||
From: Sven Verdoolaege <sven.verdoolaege@gmail.com>
|
||||
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 <sven.verdoolaege@gmail.com>
|
||||
|
||||
--- 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. */
|
||||
|
||||
34
plans/tier0.fmf
Normal file
34
plans/tier0.fmf
Normal file
@ -0,0 +1,34 @@
|
||||
# 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:
|
||||
component: compat-sap-c++
|
||||
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/compat-sap-cplusplus.git
|
||||
filter: tier:1
|
||||
prepare+:
|
||||
- how: shell
|
||||
script:
|
||||
- dnf config-manager --set-enabled '*CRB*' || true
|
||||
- dnf config-manager --set-enabled '*CodeReady*' || true
|
||||
- dnf config-manager --set-enabled '*crb*' || true
|
||||
- dnf config-manager --set-enabled '*[Bb]uildroot*' || true
|
||||
- dnf config-manager --set-enabled '*SAP*' || true
|
||||
execute:
|
||||
how: tmt
|
||||
environment+:
|
||||
PACKAGE: compat-sap-c++
|
||||
5
sources
5
sources
@ -1 +1,4 @@
|
||||
SHA512 (gcc-12.1.1-20220507.tar.xz) = 6c978a58820ad24b2aeb03d579782de1b0e76ade509b6f2e38ebd773565d1b9afd968c99b26db399416e7aa8bdd068631bc3d3b7eff3d41e734ca3764337b8e2
|
||||
SHA512 (gcc-15.2.1-20260123.tar.xz) = c4f0513e4027632f2d62b1feead9fa197e46f796212bd7f07eaff9b2e84a1230b601f3a6f2cabfc9994ca0e47f95b21fcb9a182575a27e30100e3206d6767070
|
||||
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
||||
SHA512 (newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz) = ef9495745a96d1d76f9f425c4a48c807fface36a1aa92351c5d024103678d144d046e8de55d195103784472c14874e29e4b9284d5d6a2e7bb27fd98c8455a881
|
||||
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
|
||||
|
||||
Loading…
Reference in New Issue
Block a user