import CS gcc-toolset-13-gcc-13.1.1-4.2.el9
This commit is contained in:
commit
61551c04e6
4
.gcc-toolset-13-gcc.metadata
Normal file
4
.gcc-toolset-13-gcc.metadata
Normal file
@ -0,0 +1,4 @@
|
||||
c6598a786781f7b8a3131f96995641f45e7b96a5 SOURCES/gcc-13.1.1-20230614.tar.xz
|
||||
ae5fbb33bcb442121fbbf482a93f6b3c84d489ee SOURCES/isl-0.24.tar.bz2
|
||||
003af8bc05476507f4dd02340b727b72b404e275 SOURCES/newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz
|
||||
efdf76a82380d621f0318f3ddf582e033ffd0f75 SOURCES/nvptx-tools-93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b.tar.xz
|
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
SOURCES/gcc-13.1.1-20230614.tar.xz
|
||||
SOURCES/isl-0.24.tar.bz2
|
||||
SOURCES/newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz
|
||||
SOURCES/nvptx-tools-93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b.tar.xz
|
@ -0,0 +1,85 @@
|
||||
From 8a7f364afd86a4c4c2c747ae9cb4216fe992acc8 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 25 Aug 2021 12:36:42 -0400
|
||||
Subject: [PATCH 01/17] basic_string::reserve(n) semantics are not available in
|
||||
DTS
|
||||
|
||||
Various tests were added upstream 2020-08-06 as part of:
|
||||
"libstdc++: Implement P0966 std::string::reserve should not shrink"
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=140cf935cd118f7208b7c3826a8b9d50936242f0
|
||||
|
||||
std::string and std::wstring are instantiated in the system libstdc++.so
|
||||
via explicit instantiation definitions, so the new basic_string::reserve(n)
|
||||
semantics are not available in DTS.
|
||||
|
||||
Update/disable the pertinent parts of the tests to reflect the behavior
|
||||
when run against the system libstdc++.so.
|
||||
---
|
||||
.../testsuite/21_strings/basic_string/capacity/char/1.cc | 6 ------
|
||||
.../21_strings/basic_string/capacity/char/18654.cc | 2 +-
|
||||
.../testsuite/21_strings/basic_string/capacity/wchar_t/1.cc | 6 ------
|
||||
.../21_strings/basic_string/capacity/wchar_t/18654.cc | 2 +-
|
||||
4 files changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
|
||||
index eea69771f..64187718d 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
|
||||
@@ -41,12 +41,6 @@ void test01()
|
||||
sz01 = str01.capacity();
|
||||
VERIFY( sz01 < sz02 );
|
||||
|
||||
- // P0966: reserve should not shrink
|
||||
- str01.reserve(100);
|
||||
- sz01 = str01.capacity();
|
||||
- str01.reserve(sz01 - 1);
|
||||
- VERIFY( str01.capacity() == sz01 );
|
||||
-
|
||||
sz01 = str01.size() + 5;
|
||||
str01.resize(sz01);
|
||||
sz02 = str01.size();
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
|
||||
index 02ce78ea6..3a7352123 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
|
||||
@@ -51,7 +51,7 @@ void test01()
|
||||
VERIFY( cap >= 3 * i );
|
||||
|
||||
str.reserve(2 * i);
|
||||
- VERIFY( str.capacity() == cap );
|
||||
+ VERIFY( str.capacity() == 2 * i );
|
||||
|
||||
#if __cplusplus <= 201703L
|
||||
str.reserve();
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
|
||||
index f01a27e8c..70915a94d 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
|
||||
@@ -41,12 +41,6 @@ void test01()
|
||||
sz01 = str01.capacity();
|
||||
VERIFY( sz01 < sz02 );
|
||||
|
||||
- // P0966: reserve should not shrink
|
||||
- str01.reserve(100);
|
||||
- sz01 = str01.capacity();
|
||||
- str01.reserve(sz01 - 1);
|
||||
- VERIFY( str01.capacity() == sz01 );
|
||||
-
|
||||
sz01 = str01.size() + 5;
|
||||
str01.resize(sz01);
|
||||
sz02 = str01.size();
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
|
||||
index 267fd198b..c9711a294 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
|
||||
@@ -51,7 +51,7 @@ void test01()
|
||||
VERIFY( cap >= 3 * i );
|
||||
|
||||
str.reserve(2 * i);
|
||||
- VERIFY( str.capacity() == cap );
|
||||
+ VERIFY( str.capacity() == 2 * i );
|
||||
|
||||
#if __cplusplus <= 201703L
|
||||
str.reserve();
|
||||
--
|
||||
2.31.1
|
@ -0,0 +1,46 @@
|
||||
From d7fae9f17479c44dae68483d457fc3fbb58c4b83 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 25 Aug 2021 15:57:36 -0400
|
||||
Subject: [PATCH 04/17] operator>>(istream&, char(&)[N]) eofbit fixes are not
|
||||
available in DTS
|
||||
|
||||
The upstream commit on 2020-08--6:
|
||||
Do not set eofbit eagerly in operator>>(istream&, char(&)[N])
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=4e39f563c0cd25401f689c2093cb8c13692156ef
|
||||
altered the behaviour of std::istream symbols defined in libstdc++.so,
|
||||
but with DTS you get the old definitions from the system libstdc++.so
|
||||
|
||||
Hence this patch tweaks the new tests to avoid failing when run against
|
||||
the system libstdc++.so
|
||||
---
|
||||
.../21_strings/basic_string/inserters_extractors/char/13.cc | 1 -
|
||||
.../21_strings/basic_string/inserters_extractors/wchar_t/13.cc | 1 -
|
||||
2 files changed, 2 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc b/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
|
||||
index a25d8a93d..7d85e6ead 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
|
||||
@@ -29,7 +29,6 @@ test01()
|
||||
std::string buf;
|
||||
in.width(4);
|
||||
in >> buf;
|
||||
- VERIFY( !in.eof() ); // should stop after reading 4 chars
|
||||
VERIFY( buf == str );
|
||||
}
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc b/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
|
||||
index f15294a44..fa5fe3d4a 100644
|
||||
--- a/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
|
||||
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
|
||||
@@ -29,7 +29,6 @@ test01()
|
||||
std::wstring buf;
|
||||
in.width(4);
|
||||
in >> buf;
|
||||
- VERIFY( !in.eof() ); // should stop after reading 4 chars
|
||||
VERIFY( buf == str );
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 3ede89bd19328c26bcd881b873cf4a766ae0da3a Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 25 Aug 2021 17:04:02 -0400
|
||||
Subject: [PATCH 05/17] Disable tests for PR libstdc++/79820 and PR
|
||||
libstdc++/81751 under DTS
|
||||
|
||||
Upstream commit 2017-08-09
|
||||
PR libstdc++/81751 don't call fflush(NULL)
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=04d07b61cb80fd97e98eb39451ff6a8675a63d90
|
||||
added these test cases as part of verifying the behavior of sys_open (that
|
||||
it resets errno and doesn't call fflush on NULL).
|
||||
|
||||
These symbols are in the system stdlib when run from DTS and thus aren't
|
||||
fixed by the above change:
|
||||
|
||||
1521: 000000000007c430 104 FUNC GLOBAL DEFAULT 12 std::__basic_file<char>::sys_open(int, std::_Ios_Openmode)@@GLIBCXX_3.4
|
||||
2895: 000000000007c730 95 FUNC GLOBAL DEFAULT 12 std::__basic_file<char>::sys_open(_IO_FILE*, std::_Ios_Openmode)@@GLIBCXX_3.4
|
||||
|
||||
This patch disables the non-fixed assertions.
|
||||
---
|
||||
libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc | 2 --
|
||||
libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc | 1 -
|
||||
2 files changed, 3 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
|
||||
index 278b99169..e2a8e3b3d 100644
|
||||
--- a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
|
||||
+++ b/libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
|
||||
@@ -26,9 +26,7 @@ void
|
||||
test01()
|
||||
{
|
||||
FILE* f = std::fopen("79820.txt", "w");
|
||||
- errno = 127;
|
||||
__gnu_cxx::stdio_filebuf<char> b(f, std::ios::out, BUFSIZ);
|
||||
- VERIFY(errno == 127); // PR libstdc++/79820
|
||||
b.close();
|
||||
std::fclose(f);
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
|
||||
index 21aa06f78..6a231d7cf 100644
|
||||
--- a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
|
||||
+++ b/libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
|
||||
@@ -31,7 +31,6 @@ test01()
|
||||
FILE* in1 = std::fopen("81751.txt", "r");
|
||||
__gnu_cxx::stdio_filebuf<char> buf1(in1, std::ios::in, BUFSIZ);
|
||||
int c = buf1.sgetc();
|
||||
- VERIFY( c == std::char_traits<char>::eof() ); // PR libstdc++/81751
|
||||
|
||||
std::fflush(out);
|
||||
FILE* in2 = std::fopen("81751.txt", "r");
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,118 @@
|
||||
From 59388ee3dac5c737086ed1f83f552a44481a2213 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Tue, 31 Aug 2021 16:08:57 -0400
|
||||
Subject: [PATCH 06/17] Don't assume has_facet<codecvt_c16> when run against
|
||||
system libstdc++
|
||||
|
||||
Upstream commit 2019-02-19:
|
||||
P0482R5 char8_t: Standard library support
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=c124af936b6b225eb548ccdd7f01400511d784dc
|
||||
added new locale facets for char8_t.
|
||||
|
||||
has_facet<codecvt_c16> returns false, as it is using the std::locale the system libstdc++:
|
||||
|
||||
$ eu-readelf -s char16_t-char8_t.exe |c++filt |grep UNDEF|grep locale
|
||||
3: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::classic()@GLIBCXX_3.4 (2)
|
||||
8: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::locale(std::locale const&)@GLIBCXX_3.4 (2)
|
||||
13: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::id::_M_id() const@GLIBCXX_3.4 (2)
|
||||
22: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::~locale()@GLIBCXX_3.4 (2)
|
||||
64: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::classic()@@GLIBCXX_3.4
|
||||
76: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::locale(std::locale const&)@@GLIBCXX_3.4
|
||||
89: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::id::_M_id() const@@GLIBCXX_3.4
|
||||
108: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::locale::~locale()@@GLIBCXX_3.4
|
||||
|
||||
Hence this patch tweaks tests so that they bail out if run against an older std::locale.
|
||||
---
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc | 3 ++-
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc | 3 ++-
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc | 3 ++-
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc | 3 ++-
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc | 2 ++
|
||||
libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc | 2 ++
|
||||
6 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
|
||||
index 71a23bef4..d4aa519a2 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
|
||||
@@ -31,7 +31,8 @@ test01()
|
||||
using namespace std;
|
||||
typedef codecvt<char16_t, char8_t, mbstate_t> codecvt_c16;
|
||||
locale loc_c = locale::classic();
|
||||
- VERIFY(has_facet<codecvt_c16>(loc_c));
|
||||
+ if (!has_facet<codecvt_c16>(loc_c))
|
||||
+ return;
|
||||
const codecvt_c16* const cvt = &use_facet<codecvt_c16>(loc_c);
|
||||
|
||||
VERIFY(!cvt->always_noconv());
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
|
||||
index 7b5ce126d..05c77b2b1 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
|
||||
@@ -29,7 +29,8 @@ test01()
|
||||
using namespace std;
|
||||
typedef codecvt<char16_t, char, mbstate_t> codecvt_c16;
|
||||
locale loc_c = locale::classic();
|
||||
- VERIFY(has_facet<codecvt_c16>(loc_c));
|
||||
+ if (!has_facet<codecvt_c16>(loc_c))
|
||||
+ return;
|
||||
const codecvt_c16* const cvt = &use_facet<codecvt_c16>(loc_c);
|
||||
|
||||
VERIFY(!cvt->always_noconv());
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
|
||||
index f30ae22e9..281969e9b 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
|
||||
@@ -33,7 +33,8 @@ test01()
|
||||
using namespace std;
|
||||
typedef codecvt<char32_t, char8_t, mbstate_t> codecvt_c32;
|
||||
locale loc_c = locale::classic();
|
||||
- VERIFY(has_facet<codecvt_c32>(loc_c));
|
||||
+ if (!has_facet<codecvt_c32>(loc_c))
|
||||
+ return;
|
||||
const codecvt_c32* const cvt = &use_facet<codecvt_c32>(loc_c);
|
||||
|
||||
VERIFY(!cvt->always_noconv());
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
|
||||
index 558ba9145..82980b702 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
|
||||
@@ -31,7 +31,8 @@ test01()
|
||||
using namespace std;
|
||||
typedef codecvt<char32_t, char, mbstate_t> codecvt_c32;
|
||||
locale loc_c = locale::classic();
|
||||
- VERIFY(has_facet<codecvt_c32>(loc_c));
|
||||
+ if (!has_facet<codecvt_c32>(loc_c))
|
||||
+ return;
|
||||
const codecvt_c32* const cvt = &use_facet<codecvt_c32>(loc_c);
|
||||
|
||||
VERIFY(!cvt->always_noconv());
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
|
||||
index 5eab05ba2..d6f663ce6 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
|
||||
@@ -34,6 +34,8 @@ void test(const C* from)
|
||||
std::mbstate_t state{};
|
||||
char8_t buf[16] = { };
|
||||
using test_type = std::codecvt<C, char8_t, std::mbstate_t>;
|
||||
+ if (!std::has_facet<test_type>(std::locale::classic()))
|
||||
+ return;
|
||||
const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
|
||||
auto from_end = from + len;
|
||||
auto from_next = from;
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc b/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
|
||||
index b1b3cff31..167bc0ca3 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
|
||||
@@ -32,6 +32,8 @@ void test(const C* from)
|
||||
std::mbstate_t state{};
|
||||
char buf[16] = { };
|
||||
using test_type = std::codecvt<C, char, std::mbstate_t>;
|
||||
+ if (!std::has_facet<test_type>(std::locale::classic()))
|
||||
+ return;
|
||||
const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
|
||||
auto from_end = from + len;
|
||||
auto from_next = from;
|
||||
--
|
||||
2.31.1
|
||||
|
42
SOURCES/0008-testsuite-build-plugins-with-std-c-11.patch
Normal file
42
SOURCES/0008-testsuite-build-plugins-with-std-c-11.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From 16694079a3f415f5e5683b0afe6978810ac259b1 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Tue, 31 Aug 2021 17:01:05 -0400
|
||||
Subject: [PATCH 08/17] testsuite: build plugins with -std=c++11
|
||||
|
||||
Various testsuite plugins fail when built within DTS with e.g.:
|
||||
cc1: error: cannot load plugin ./diagnostic_plugin_test_paths.so: /builddir/build/BUILD/gcc-11.1.1-20210623/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/src/.libs/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./diagnostic_plugin_test_paths.so)
|
||||
|
||||
These turn out to C++14's sized deletion
|
||||
(see https://en.cppreference.com/w/cpp/memory/new/operator_delete):
|
||||
|
||||
14: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF _ZdlPvm@CXXABI_1.3.9 (4)
|
||||
48: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF _ZdlPvm@CXXABI_1.3.9
|
||||
14: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF operator delete(void*, unsigned long)@CXXABI_1.3.9 (4)
|
||||
48: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF operator delete(void*, unsigned long)@CXXABI_1.3.9
|
||||
|
||||
Looks like plugin.exp is building the test plugins against the
|
||||
freshly-built libstdc++, and then trying to dynamically load them
|
||||
against the system libstdc++.
|
||||
|
||||
This patch forces the use of -std=c++11 when building these test plugins,
|
||||
to sidestep the problem.
|
||||
---
|
||||
gcc/testsuite/lib/plugin-support.exp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/testsuite/lib/plugin-support.exp b/gcc/testsuite/lib/plugin-support.exp
|
||||
index 6d651901e..9943dbb37 100644
|
||||
--- a/gcc/testsuite/lib/plugin-support.exp
|
||||
+++ b/gcc/testsuite/lib/plugin-support.exp
|
||||
@@ -103,7 +103,7 @@ proc plugin-test-execute { plugin_src plugin_tests } {
|
||||
}
|
||||
set optstr [concat $optstr "-DIN_GCC -fPIC -shared -fno-rtti -undefined dynamic_lookup"]
|
||||
} else {
|
||||
- set plug_cflags $PLUGINCFLAGS
|
||||
+ set plug_cflags "$PLUGINCFLAGS -std=c++11"
|
||||
set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared -fno-rtti"
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,36 @@
|
||||
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
|
||||
|
@ -0,0 +1,30 @@
|
||||
From d1555ffdd9b4fa6f3ceaa166bbfee0b3b9973ecf Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 1 Sep 2021 11:24:34 -0400
|
||||
Subject: [PATCH 10/17] Don't verify exception handling in basic_filebuf::close
|
||||
in DTS [PR81256]
|
||||
|
||||
27_io/basic_filebuf/close/81256.cc was added upstream 2018-05-14 in
|
||||
PR libstdc++/81256 fix exception handling in basic_filebuf::close
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e77497ab777d3dfa19224648d658220807ab7419
|
||||
|
||||
When run under DTS,
|
||||
std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::close
|
||||
comes from the system libstdc++, and hence the test fails.
|
||||
---
|
||||
libstdc++-v3/testsuite/27_io/basic_filebuf/close/81256.cc | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
|
||||
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
|
||||
@@ -80,7 +80,6 @@ test01()
|
||||
caught = true;
|
||||
}
|
||||
VERIFY( conv.exceptions_thrown == 1 );
|
||||
- VERIFY( caught );
|
||||
}
|
||||
VERIFY( conv.exceptions_thrown == 1 );
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,117 @@
|
||||
From b6989e3a4acda2d75612f3f3847dbea4245ff536 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Wed, 1 Sep 2021 15:39:45 -0400
|
||||
Subject: [PATCH 11/17] Add dts.exp and use it to fix
|
||||
22_locale/messages/13631.cc
|
||||
|
||||
This test was added upstream 2014-12-03:
|
||||
"re PR libstdc++/13631 (Problems in messages)"
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=d31008d7a0d53b431f176aad8dda5498de823122
|
||||
|
||||
as part of a fix that is present in the system libstdc++.so in
|
||||
GCC 5 onwards.
|
||||
|
||||
When run in DTS against such a system library, this test will fail.
|
||||
This patch introduces a dts.exp which detects the version of the
|
||||
underlying system libstdc++.so and exposes it to tests via
|
||||
-D__CXXSTDLIB_SO_VERSION__=, so that we can ifdef specific tests
|
||||
away, conditionally on the base GCC.
|
||||
---
|
||||
.../testsuite/22_locale/messages/13631.cc | 7 +++++
|
||||
libstdc++-v3/testsuite/lib/dts.exp | 31 +++++++++++++++++++
|
||||
libstdc++-v3/testsuite/lib/libstdc++.exp | 6 ++++
|
||||
3 files changed, 44 insertions(+)
|
||||
create mode 100644 libstdc++-v3/testsuite/lib/dts.exp
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/messages/13631.cc b/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
index b8ae3d4f1..5b20df382 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
@@ -50,7 +50,10 @@ void test01()
|
||||
msgs_facet.close(fake_msgs);
|
||||
msgs_facet.close(msgs);
|
||||
|
||||
+ // Fixed upstream in GCC 5
|
||||
+#if __CXXSTDLIB_SO_VERSION__ >= 501000
|
||||
VERIFY( translation1 == translation2 );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test02()
|
||||
@@ -72,8 +75,12 @@ void test02()
|
||||
std::wstring translation1 = msgs_facet.get(msgs, 0, 0, msgid);
|
||||
|
||||
// Without a real translation this test doesn't mean anything:
|
||||
+
|
||||
+ // Fixed upstream in GCC 5
|
||||
+#if __CXXSTDLIB_SO_VERSION__ >= 501000
|
||||
VERIFY( !translation1.empty() );
|
||||
VERIFY( translation1 != msgid );
|
||||
+#endif
|
||||
|
||||
// Opening another catalog was enough to show the problem, even a fake
|
||||
// catalog.
|
||||
diff --git a/libstdc++-v3/testsuite/lib/dts.exp b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
new file mode 100644
|
||||
index 000000000..76ece66d3
|
||||
--- /dev/null
|
||||
+++ b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
@@ -0,0 +1,31 @@
|
||||
+# For DTS testing, generate a number expressing the
|
||||
+# system version of libstdc++.so
|
||||
+#
|
||||
+# Generate a version number equivalent to
|
||||
+# #define GCC_VERSION (__GNUC__ * 10000 \
|
||||
+# + __GNUC_MINOR__ * 100 \
|
||||
+# + __GNUC_PATCHLEVEL__)
|
||||
+#
|
||||
+# For example, given an underlying version of gcc 4.8.5
|
||||
+# this function will return 408050.
|
||||
+
|
||||
+proc get_dts_base_version { } {
|
||||
+
|
||||
+ # Invoke gcc in the PATH to get at the underlying GCC version
|
||||
+ # in dotted form (e.g. "4.8.5").
|
||||
+ set dotted_version [exec gcc -dumpversion]
|
||||
+ verbose "dotted_version: '$dotted_version'" 2
|
||||
+
|
||||
+ # Extract major, minor, patchlevel
|
||||
+ regexp {([0-9]+)\.([0-9]+)\.([0-9]+)} \
|
||||
+ $dotted_version \
|
||||
+ _ major minor patchlevel
|
||||
+ verbose "major: '$major'" 2
|
||||
+ verbose "minor: '$minor'" 2
|
||||
+ verbose "patchlevel: '$patchlevel'" 2
|
||||
+
|
||||
+ set base_gcc_version [expr (($major * 10000) + ($minor * 100) + $patchlevel)]
|
||||
+ verbose "base_gcc_version: '$base_gcc_version'" 2
|
||||
+
|
||||
+ return $base_gcc_version
|
||||
+}
|
||||
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
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
|
||||
load_gcc_lib wrapper.exp
|
||||
load_gcc_lib target-utils.exp
|
||||
+load_lib dts.exp
|
||||
|
||||
# Useful for debugging. Pass the name of a variable and the verbosity
|
||||
# threshold (number of -v's on the command line).
|
||||
@@ -323,6 +324,11 @@ proc libstdc++_init { testfile } {
|
||||
set ccflags "$cxxflags -DLOCALEDIR=\".\""
|
||||
set cxxflags "$cxxflags -DLOCALEDIR=\".\""
|
||||
|
||||
+ # For DTS testing, expose the system version of libstdc++.so as
|
||||
+ # a preprocessor define.
|
||||
+ set base_gcc_version [get_dts_base_version]
|
||||
+ set cxxflags "$cxxflags -D__CXXSTDLIB_SO_VERSION__=$base_gcc_version"
|
||||
+
|
||||
# If a PCH file is available, use it. We must delay performing
|
||||
# this check until $cxx and such have been initialized because we
|
||||
# perform a test compilation. (Ideally, gcc --print-file-name would
|
||||
--
|
||||
2.31.1
|
||||
|
28
SOURCES/0012-dts.exp-use-usr-bin-gcc.patch
Normal file
28
SOURCES/0012-dts.exp-use-usr-bin-gcc.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From c3910bb945aba02e0c06dec041da9f1f148b0df1 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 11:40:42 -0400
|
||||
Subject: [PATCH 12/17] dts.exp: use /usr/bin/gcc
|
||||
|
||||
---
|
||||
libstdc++-v3/testsuite/lib/dts.exp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/lib/dts.exp b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
index 76ece66d3..dc5cf3e95 100644
|
||||
--- a/libstdc++-v3/testsuite/lib/dts.exp
|
||||
+++ b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
@@ -11,9 +11,9 @@
|
||||
|
||||
proc get_dts_base_version { } {
|
||||
|
||||
- # Invoke gcc in the PATH to get at the underlying GCC version
|
||||
+ # Invoke /usr/bin/gcc to get at the underlying GCC version
|
||||
# in dotted form (e.g. "4.8.5").
|
||||
- set dotted_version [exec gcc -dumpversion]
|
||||
+ set dotted_version [exec /usr/bin/gcc -dumpversion]
|
||||
verbose "dotted_version: '$dotted_version'" 2
|
||||
|
||||
# Extract major, minor, patchlevel
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,86 @@
|
||||
From c922a56d4461c9e4ca2af07ecccb3626b99a35ae Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 11:44:37 -0400
|
||||
Subject: [PATCH 13/17] Rename __CXXSTDLIB_SO_VERSION__ to
|
||||
__LIBSTDCXX_SO_VERSION and only use major version
|
||||
|
||||
---
|
||||
.../testsuite/22_locale/messages/13631.cc | 4 ++--
|
||||
libstdc++-v3/testsuite/lib/dts.exp | 18 +++++-------------
|
||||
libstdc++-v3/testsuite/lib/libstdc++.exp | 4 ++--
|
||||
3 files changed, 9 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/messages/13631.cc b/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
index 5b20df382..f4c5eb7a2 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/messages/13631.cc
|
||||
@@ -51,7 +51,7 @@ void test01()
|
||||
msgs_facet.close(msgs);
|
||||
|
||||
// Fixed upstream in GCC 5
|
||||
-#if __CXXSTDLIB_SO_VERSION__ >= 501000
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 5
|
||||
VERIFY( translation1 == translation2 );
|
||||
#endif
|
||||
}
|
||||
@@ -77,7 +77,7 @@ void test02()
|
||||
// Without a real translation this test doesn't mean anything:
|
||||
|
||||
// Fixed upstream in GCC 5
|
||||
-#if __CXXSTDLIB_SO_VERSION__ >= 501000
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 5
|
||||
VERIFY( !translation1.empty() );
|
||||
VERIFY( translation1 != msgid );
|
||||
#endif
|
||||
diff --git a/libstdc++-v3/testsuite/lib/dts.exp b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
index dc5cf3e95..60f94bd6d 100644
|
||||
--- a/libstdc++-v3/testsuite/lib/dts.exp
|
||||
+++ b/libstdc++-v3/testsuite/lib/dts.exp
|
||||
@@ -1,15 +1,10 @@
|
||||
-# For DTS testing, generate a number expressing the
|
||||
-# system version of libstdc++.so
|
||||
-#
|
||||
-# Generate a version number equivalent to
|
||||
-# #define GCC_VERSION (__GNUC__ * 10000 \
|
||||
-# + __GNUC_MINOR__ * 100 \
|
||||
-# + __GNUC_PATCHLEVEL__)
|
||||
+# For DTS testing, get the major version of the
|
||||
+# system libstdc++.so
|
||||
#
|
||||
# For example, given an underlying version of gcc 4.8.5
|
||||
-# this function will return 408050.
|
||||
+# this function will return 4
|
||||
|
||||
-proc get_dts_base_version { } {
|
||||
+proc get_dts_base_major_version { } {
|
||||
|
||||
# Invoke /usr/bin/gcc to get at the underlying GCC version
|
||||
# in dotted form (e.g. "4.8.5").
|
||||
@@ -24,8 +19,5 @@ proc get_dts_base_version { } {
|
||||
verbose "minor: '$minor'" 2
|
||||
verbose "patchlevel: '$patchlevel'" 2
|
||||
|
||||
- set base_gcc_version [expr (($major * 10000) + ($minor * 100) + $patchlevel)]
|
||||
- verbose "base_gcc_version: '$base_gcc_version'" 2
|
||||
-
|
||||
- return $base_gcc_version
|
||||
+ return $major
|
||||
}
|
||||
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
index 5e4b32f76..297485b19 100644
|
||||
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
|
||||
@@ -326,8 +326,8 @@ proc libstdc++_init { testfile } {
|
||||
|
||||
# For DTS testing, expose the system version of libstdc++.so as
|
||||
# a preprocessor define.
|
||||
- set base_gcc_version [get_dts_base_version]
|
||||
- set cxxflags "$cxxflags -D__CXXSTDLIB_SO_VERSION__=$base_gcc_version"
|
||||
+ set base_gcc_version [get_dts_base_major_version]
|
||||
+ set cxxflags "$cxxflags -D__LIBSTDCXX_SO_VERSION=$base_gcc_version"
|
||||
|
||||
# If a PCH file is available, use it. We must delay performing
|
||||
# this check until $cxx and such have been initialized because we
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,84 @@
|
||||
From fa770c25013df537c41d0929c4202b0a774a6a75 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 15:27:59 -0400
|
||||
Subject: [PATCH 14/17] Conditionalize tests for PR libstdc++/98466 on
|
||||
__LIBSTDCXX_SO_VERSION >= 11
|
||||
|
||||
The tests:
|
||||
23_containers/deque/debug/98466.cc
|
||||
23_containers/unordered_map/debug/98466.cc
|
||||
were added upstream 2021-01-01 as part of:
|
||||
libstdc++: Implement N3644 for _GLIBCXX_DEBUG iterators
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=05a30af3f237984b4dcf1dbbc17fdac583c46506
|
||||
but fail when run in DTS against a system libstdc++.so
|
||||
from an older GCC.
|
||||
|
||||
In particular, they use the older implementation of _M_can_compare from
|
||||
the dynamic library:
|
||||
|
||||
$ eu-readelf -s 98466.exe | grep can_compare | c++filt
|
||||
11: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __gnu_debug::_Safe_iterator_base::_M_can_compare(__gnu_debug::_Safe_iterator_base const&) const@GLIBCXX_3.4 (4)
|
||||
157: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __gnu_debug::_Safe_iterator_base::_M_can_compare(__gnu_debug::_Safe_iterator_base const&) const@@GLIBCXX_3.4
|
||||
---
|
||||
.../testsuite/23_containers/deque/debug/98466.cc | 6 ++++++
|
||||
.../23_containers/unordered_map/debug/98466.cc | 12 ++++++++++++
|
||||
2 files changed, 18 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
||||
index c2d793374..e92d719bf 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
||||
@@ -26,11 +26,17 @@ void test01()
|
||||
{
|
||||
typedef typename __gnu_debug::deque<int>::iterator It;
|
||||
It it = It();
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( it == it );
|
||||
+#endif
|
||||
|
||||
typedef typename __gnu_debug::deque<int>::const_iterator Cit;
|
||||
Cit cit = Cit();
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( cit == cit );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
||||
index cc22b9ff8..3a1b6cd32 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
||||
@@ -25,16 +25,28 @@
|
||||
void test01()
|
||||
{
|
||||
__gnu_debug::unordered_map<int, int>::iterator it{};
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( it == it );
|
||||
+#endif
|
||||
|
||||
__gnu_debug::unordered_map<int, int>::const_iterator cit{};
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( cit == cit );
|
||||
+#endif
|
||||
|
||||
__gnu_debug::unordered_map<int, int>::local_iterator lit{};
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( lit == lit );
|
||||
+#endif
|
||||
|
||||
__gnu_debug::unordered_map<int, int>::const_local_iterator clit{};
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( clit == clit );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 992665eab6c48d6a4819f42509346d24b277485d Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 16:17:29 -0400
|
||||
Subject: [PATCH 15/17] Conditionalize test for PR libstdc++/87135 on
|
||||
__LIBSTDCXX_SO_VERSION >= 9
|
||||
|
||||
This VERIFY was added upstream 2018-09-18 as part of:
|
||||
re PR libstdc++/87135 ([C++17] unordered containers violate iterator validity requirements)
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=a521e62615e439aea7502a52fd0f8a21eaa6304f
|
||||
|
||||
but fails when run in DTS against a system libstdc++.so from an older GCC.
|
||||
|
||||
In particular, rehash from the header is using
|
||||
std::__detail::_Prime_rehash_policy::_M_next_bkt
|
||||
from the system .so:
|
||||
|
||||
12: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const@GLIBCXX_3.4.18 (5)
|
||||
225: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const@@GLIBCXX_3.4.18
|
||||
---
|
||||
.../23_containers/unordered_map/modifiers/reserve.cc | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
|
||||
index 58c8924b9..4c79ec2e6 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
|
||||
@@ -46,7 +46,11 @@ void test01()
|
||||
|
||||
// As long as we insert less than the reserved number of elements we
|
||||
// shouldn't experiment any rehash.
|
||||
+
|
||||
+ // Fixed upstream in GCC 9
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 9
|
||||
VERIFY( m.bucket_count() == bkts );
|
||||
+#endif
|
||||
|
||||
VERIFY( m.load_factor() <= m.max_load_factor() );
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,102 @@
|
||||
From db8f53df0be1daeda3159c1413549ff40696c710 Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 17:02:33 -0400
|
||||
Subject: [PATCH 16/17] Conditionalize test for hashtable bucket sizes on
|
||||
__LIBSTDCXX_SO_VERSION >= 11
|
||||
|
||||
These tests were added upstream 2020-01-20 as part of:
|
||||
libstdc++: Do not over-size hashtable buckets on range insertion
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=6dcf042368012e2d7ce1626ee5d378bf3ad0ccfc
|
||||
|
||||
but fail when run in DTS against a system libstdc++.so from an older GCC.
|
||||
|
||||
In particular, _M_insert_unique_node from the header is using the older
|
||||
implementation of
|
||||
std::__detail::_Prime_rehash_policy::_M_need_rehash
|
||||
from the dynamic library.
|
||||
|
||||
23: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const@GLIBCXX_3.4.18 (5)
|
||||
412: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const@@GLIBCXX_3.4.18
|
||||
---
|
||||
.../23_containers/unordered_set/cons/bucket_hint.cc | 10 ++++++++++
|
||||
.../23_containers/unordered_set/modifiers/insert.cc | 9 +++++++++
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
|
||||
index a3b014a3a..af231e54e 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
|
||||
@@ -29,7 +29,11 @@ void test01()
|
||||
a.reserve(2);
|
||||
|
||||
std::unordered_set<int> b({ 0, 1, 0, 1, 0, 1, 0, 1 }, a.bucket_count());
|
||||
+
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( b.bucket_count() == a.bucket_count() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test02()
|
||||
@@ -40,7 +44,10 @@ void test02()
|
||||
std::vector<int> v { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
|
||||
|
||||
std::unordered_set<int> b(v.begin(), v.end(), a.bucket_count());
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( b.bucket_count() == a.bucket_count() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test03()
|
||||
@@ -51,7 +58,10 @@ void test03()
|
||||
std::forward_list<int> fl { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
|
||||
|
||||
std::unordered_set<int> b(fl.begin(), fl.end(), a.bucket_count());
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( b.bucket_count() == a.bucket_count() );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
|
||||
index 015c2f872..aae8298ae 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
|
||||
@@ -30,7 +30,10 @@ void test01()
|
||||
|
||||
auto bkt_count = a.bucket_count();
|
||||
a.insert({ 0, 1, 0, 1, 0, 1, 0, 1 });
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( a.bucket_count() == bkt_count );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test02()
|
||||
@@ -42,7 +45,10 @@ void test02()
|
||||
|
||||
auto bkt_count = a.bucket_count();
|
||||
a.insert(v.begin(), v.end());
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( a.bucket_count() == bkt_count );
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test03()
|
||||
@@ -54,7 +60,10 @@ void test03()
|
||||
|
||||
auto bkt_count = a.bucket_count();
|
||||
a.insert(fl.begin(), fl.end());
|
||||
+ // Fixed upstream in GCC 11
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 11
|
||||
VERIFY( a.bucket_count() == bkt_count );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 102adc148612b50a4e3f12a88871ddc47bfb469e Mon Sep 17 00:00:00 2001
|
||||
From: David Malcolm <dmalcolm@redhat.com>
|
||||
Date: Thu, 2 Sep 2021 17:17:50 -0400
|
||||
Subject: [PATCH 17/17] Conditionalize test for PR libstdc++/71181 on
|
||||
__LIBSTDCXX_SO_VERSION >= 7
|
||||
|
||||
This test was added upstream 2016-06-20 as part of:
|
||||
re PR libstdc++/71181 (Reserving in unordered_map doesn't reserve enough)
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=29dbb034cb3199167a9d0aaed040733c72326eed
|
||||
|
||||
but fails when run in DTS against a system libstdc++.so from an older GCC.
|
||||
---
|
||||
.../testsuite/23_containers/unordered_set/hash_policy/71181.cc | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
|
||||
index 324d735b8..b2dcd0137 100644
|
||||
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
|
||||
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
|
||||
@@ -39,7 +39,10 @@ template<typename _USet>
|
||||
|
||||
us.insert(nb_insert);
|
||||
|
||||
+ // Fixed upstream in GCC 7
|
||||
+#if __LIBSTDCXX_SO_VERSION >= 7
|
||||
VERIFY( us.bucket_count() == bkts );
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
13
SOURCES/0018-Use-CXX11-ABI.patch
Normal file
13
SOURCES/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
|
||||
@@ -4,6 +4,8 @@
|
||||
{ dg-do compile { target c++11 } }
|
||||
{ dg-options "-O2 -Wall" } */
|
||||
|
||||
+#define _GLIBCXX_USE_CXX11_ABI 1
|
||||
+
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
16
SOURCES/0019-xfails.patch
Normal file
16
SOURCES/0019-xfails.patch
Normal file
@ -0,0 +1,16 @@
|
||||
Looks like a known fail:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101674
|
||||
|
||||
diff --git a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
|
||||
index 53c4a5399ea..c2b043f5019 100644
|
||||
--- a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
|
||||
+++ b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
|
||||
@@ -17,7 +17,7 @@ int foo (int n, int l, int m, int r)
|
||||
|
||||
if (l > 100)
|
||||
if ( (n <= 9) && (m < 100) && (r < 19) )
|
||||
- blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail powerpc64*-*-* cris-*-* riscv*-*-* } } */
|
||||
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail powerpc64*-*-* cris-*-* riscv*-*-* s390*-*-* } } */
|
||||
|
||||
if ( (n <= 8) && (m < 99) && (r < 19) )
|
||||
blah(v); /* { dg-bogus "uninitialized" "pr101674" { xfail mmix-*-* } } */
|
12
SOURCES/0020-more-fixes.patch
Normal file
12
SOURCES/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: 9" "thread2" { target { ! aarch64*-*-* } } } } */
|
||||
-/* { dg-final { scan-tree-dump "Jumps threaded: 18" "thread2" { target { aarch64*-*-* } } } } */
|
||||
|
||||
enum STATE {
|
||||
S0=0,
|
424
SOURCES/0021-libstdc++-disable-tests.patch
Normal file
424
SOURCES/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
|
||||
}
|
72
SOURCES/0022-libstdc++-revert-behavior.patch
Normal file
72
SOURCES/0022-libstdc++-revert-behavior.patch
Normal file
@ -0,0 +1,72 @@
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
|
||||
index fa740b42b88..5d808ee51ee 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
|
||||
@@ -39,14 +39,14 @@ void test01()
|
||||
const ios_base::iostate good = ios_base::goodbit;
|
||||
ios_base::iostate errorstate = good;
|
||||
|
||||
- iss.str("62/04/71");
|
||||
+ iss.str("60/04/71");
|
||||
iterator_type is_it01(iss);
|
||||
tm time01;
|
||||
errorstate = good;
|
||||
iterator_type ret01 = tim_get.get_date(is_it01, end, iss, errorstate,
|
||||
&time01);
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
- VERIFY( *ret01 == '2' );
|
||||
+ VERIFY( *ret01 == '6' );
|
||||
|
||||
iss.str("04/38/71");
|
||||
iterator_type is_it02(iss);
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
|
||||
index 07f4c369e58..c975c8523d8 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
|
||||
@@ -40,14 +40,14 @@ void test01()
|
||||
const ios_base::iostate good = ios_base::goodbit;
|
||||
ios_base::iostate errorstate = good;
|
||||
|
||||
- iss.str(L"62/04/71");
|
||||
+ iss.str(L"60/04/71");
|
||||
iterator_type is_it01(iss);
|
||||
tm time01;
|
||||
errorstate = good;
|
||||
iterator_type ret01 = tim_get.get_date(is_it01, end, iss, errorstate,
|
||||
&time01);
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
- VERIFY( *ret01 == L'2' );
|
||||
+ VERIFY( *ret01 == L'6' );
|
||||
|
||||
iss.str(L"04/38/71");
|
||||
iterator_type is_it02(iss);
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
|
||||
index e6f53de4a55..c9d9896a6c0 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
|
||||
@@ -76,8 +76,8 @@ void test01()
|
||||
errorstate = good;
|
||||
iterator_type ret03 = tim_get.get_year(is_it03, end, iss, errorstate,
|
||||
&time03);
|
||||
- VERIFY( time03.tm_year == 197 - 1900 );
|
||||
- VERIFY( errorstate == good );
|
||||
+ VERIFY( time03.tm_year == 3 );
|
||||
+ VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *ret03 == 'd' );
|
||||
|
||||
iss.str("71d71");
|
||||
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
|
||||
index ba95fb91520..e17712098f4 100644
|
||||
--- a/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
|
||||
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
|
||||
@@ -76,8 +76,8 @@ void test01()
|
||||
errorstate = good;
|
||||
iterator_type ret03 = tim_get.get_year(is_it03, end, iss, errorstate,
|
||||
&time03);
|
||||
- VERIFY( time03.tm_year == 197 - 1900 );
|
||||
- VERIFY( errorstate == good );
|
||||
+ VERIFY( time03.tm_year == 3 );
|
||||
+ VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *ret03 == L'd' );
|
||||
|
||||
iss.str(L"71d71");
|
62
SOURCES/gcc13-Wno-format-security.patch
Normal file
62
SOURCES/gcc13-Wno-format-security.patch
Normal file
@ -0,0 +1,62 @@
|
||||
2022-01-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* Makefile.tpl (GOCFLAGS, GDCFLAGS): Filter out -Wformat-security.
|
||||
* Makefile.in: Regenerated.
|
||||
|
||||
2017-02-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
|
||||
* 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,
|
||||
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 ],
|
||||
[-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
|
||||
@@ -7077,7 +7077,7 @@ else
|
||||
fi
|
||||
|
||||
if test $enable_build_format_warnings = no; then :
|
||||
- wf_opt=-Wno-format
|
||||
+ wf_opt="-Wno-format -Wno-format-security"
|
||||
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
|
||||
@@ -446,9 +446,9 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
-GM2FLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+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
|
||||
@@ -443,9 +443,9 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
-GM2FLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+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)
|
20
SOURCES/gcc13-d-shared-libphobos.patch
Normal file
20
SOURCES/gcc13-d-shared-libphobos.patch
Normal file
@ -0,0 +1,20 @@
|
||||
2019-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* d-spec.cc (lang_specific_driver): Make -shared-libphobos
|
||||
the default rather than -static-libphobos.
|
||||
|
||||
--- gcc/d/d-spec.cc.jj 2019-01-01 12:37:49.502444257 +0100
|
||||
+++ gcc/d/d-spec.cc 2019-01-17 17:09:45.364949246 +0100
|
||||
@@ -408,9 +408,9 @@ lang_specific_driver (cl_decoded_option
|
||||
/* Add `-lgphobos' if we haven't already done so. */
|
||||
if (phobos_library != PHOBOS_NOLINK)
|
||||
{
|
||||
- /* Default to static linking. */
|
||||
- if (phobos_library != PHOBOS_DYNAMIC)
|
||||
- phobos_library = PHOBOS_STATIC;
|
||||
+ /* Default to shared linking. */
|
||||
+ if (phobos_library != PHOBOS_STATIC)
|
||||
+ phobos_library = PHOBOS_DYNAMIC;
|
||||
|
||||
#ifdef HAVE_LD_STATIC_DYNAMIC
|
||||
if (phobos_library == PHOBOS_STATIC && !static_link)
|
44
SOURCES/gcc13-dg-ice-fixes.patch
Normal file
44
SOURCES/gcc13-dg-ice-fixes.patch
Normal file
@ -0,0 +1,44 @@
|
||||
--- 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 @@
|
||||
/* { dg-additional-options "--param openacc-kernels=decompose" } */
|
||||
|
||||
-/* { dg-additional-options "-fchecking" }
|
||||
+/* { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
{ dg-ice TODO { c++ } }
|
||||
{ dg-prune-output "during GIMPLE pass: omp_oacc_kernels_decompose" } */
|
||||
|
||||
--- 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 @@
|
||||
/* { dg-additional-options "--param openacc-kernels=decompose" } */
|
||||
|
||||
-/* { dg-additional-options "-fchecking" }
|
||||
+/* { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
{ dg-ice TODO { c++ } }
|
||||
{ dg-prune-output "during GIMPLE pass: omp_oacc_kernels_decompose" } */
|
||||
|
||||
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-88982.C b/gcc/testsuite/g++.dg/cpp0x/vt-88982.C
|
||||
index 7a868233d73..45307a63483 100644
|
||||
--- a/gcc/testsuite/g++.dg/cpp0x/vt-88982.C
|
||||
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-88982.C
|
||||
@@ -1,6 +1,6 @@
|
||||
// PR c++/88982
|
||||
// { dg-do compile { target c++11 } }
|
||||
-// { dg-additional-options "-fchecking" }
|
||||
+// { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
// { dg-ice "tsubst_pack_expansion" }
|
||||
|
||||
template<typename...Ts> struct A {
|
||||
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn61.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
|
||||
index bed5ea0cfc0..cb235bf891a 100644
|
||||
--- a/gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
|
||||
+++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
|
||||
@@ -1,6 +1,6 @@
|
||||
// PR c++/88003
|
||||
// { dg-do compile { target c++14 } }
|
||||
-// { dg-additional-options "-fchecking" }
|
||||
+// { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
// { dg-ice "poplevel_class" }
|
||||
|
||||
auto test() {
|
215
SOURCES/gcc13-fortran-fdec-duplicates.patch
Normal file
215
SOURCES/gcc13-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;
|
||||