Toshaan Bharvani
5 months ago
commit
5d69ef6b3d
45 changed files with 20913 additions and 0 deletions
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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> |
||||||
|
|
@ -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-*-* } } */ |
@ -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, |
@ -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 |
||||||
|
} |
@ -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"); |
Binary file not shown.
@ -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) |
@ -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) |
@ -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() { |
@ -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 |
||||||
|
|
@ -0,0 +1,126 @@ |
|||||||
|
--- libada/Makefile.in.jj 2019-01-09 13:01:18.015608205 +0100 |
||||||
|
+++ libada/Makefile.in 2019-01-11 18:16:23.441726931 +0100 |
||||||
|
@@ -71,18 +71,40 @@ version := $(shell @get_gcc_base_ver@ $( |
||||||
|
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR) |
||||||
|
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) |
||||||
|
|
||||||
|
+DEFAULTMULTIFLAGS := |
||||||
|
+ifeq ($(MULTISUBDIR),) |
||||||
|
+targ:=$(subst -, ,$(target)) |
||||||
|
+arch:=$(word 1,$(targ)) |
||||||
|
+ifeq ($(words $(targ)),2) |
||||||
|
+osys:=$(word 2,$(targ)) |
||||||
|
+else |
||||||
|
+osys:=$(word 3,$(targ)) |
||||||
|
+endif |
||||||
|
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),) |
||||||
|
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64) |
||||||
|
+DEFAULTMULTIFLAGS := -m64 |
||||||
|
+else |
||||||
|
+ifeq ($(strip $(filter-out s390%, $(arch))),) |
||||||
|
+DEFAULTMULTIFLAGS := -m31 |
||||||
|
+else |
||||||
|
+DEFAULTMULTIFLAGS := -m32 |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+ |
||||||
|
# exeext should not be used because it's the *host* exeext. We're building |
||||||
|
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus |
||||||
|
# definitions just in case something slips through the safety net provided |
||||||
|
# by recursive make invocations in gcc/ada/Makefile.in |
||||||
|
LIBADA_FLAGS_TO_PASS = \ |
||||||
|
"MAKEOVERRIDES=" \ |
||||||
|
- "LDFLAGS=$(LDFLAGS)" \ |
||||||
|
+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
"LN_S=$(LN_S)" \ |
||||||
|
"SHELL=$(SHELL)" \ |
||||||
|
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ |
||||||
|
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ |
||||||
|
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ |
||||||
|
+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG)" \ |
||||||
|
"THREAD_KIND=$(THREAD_KIND)" \ |
||||||
|
"TRACE=$(TRACE)" \ |
||||||
|
@@ -93,7 +115,7 @@ LIBADA_FLAGS_TO_PASS = \ |
||||||
|
"exeext=.exeext.should.not.be.used " \ |
||||||
|
'CC=the.host.compiler.should.not.be.needed' \ |
||||||
|
"GCC_FOR_TARGET=$(CC)" \ |
||||||
|
- "CFLAGS=$(CFLAGS)" |
||||||
|
+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)" |
||||||
|
|
||||||
|
.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool |
||||||
|
|
||||||
|
--- config-ml.in.jj 2019-01-09 12:50:16.646501448 +0100 |
||||||
|
+++ config-ml.in 2019-01-11 18:16:23.442726914 +0100 |
||||||
|
@@ -511,6 +511,8 @@ multi-do: |
||||||
|
ADAFLAGS="$(ADAFLAGS) $${flags}" \ |
||||||
|
prefix="$(prefix)" \ |
||||||
|
exec_prefix="$(exec_prefix)" \ |
||||||
|
+ mandir="$(mandir)" \ |
||||||
|
+ infodir="$(infodir)" \ |
||||||
|
GOCFLAGS="$(GOCFLAGS) $${flags}" \ |
||||||
|
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 * |
||||||
|
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"); |
||||||
|
unsigned int num_extra_tokens = 0; |
||||||
|
unsigned nparms = 0; |
||||||
|
cpp_hashnode **params = NULL; |
||||||
|
@@ -3382,7 +3380,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 " |
||||||
|
+ "expansion"); |
||||||
|
goto out; |
||||||
|
} |
||||||
|
if (!vaopt_tracker.completed ()) |
||||||
|
@@ -3397,7 +3397,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 " |
||||||
|
+ "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, |
||||||
|
if ((result & CPP_N_WIDTH) == CPP_N_LARGE |
||||||
|
&& CPP_OPTION (pfile, cpp_warn_long_long)) |
||||||
|
{ |
||||||
|
- 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, |
||||||
|
- 0, message); |
||||||
|
+ 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")); |
||||||
|
} |
||||||
|
|
||||||
|
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T |
@ -0,0 +1,71 @@ |
|||||||
|
2011-04-04 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* toplev.cc (toplev_main_argv): New variable. |
||||||
|
(toplev_main): Initialize it. |
||||||
|
* 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); |
||||||
|
static void crash_signal (int) ATTRIBUTE_NORETURN; |
||||||
|
static void compile_file (void); |
||||||
|
|
||||||
|
+const char **toplev_main_argv; |
||||||
|
+ |
||||||
|
/* 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) |
||||||
|
|
||||||
|
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); |
||||||
|
|
||||||
|
--- gcc/graphite.cc.jj 2010-12-01 10:24:32.000000000 -0500 |
||||||
|
+++ gcc/graphite.cc 2010-12-01 11:46:07.832118193 -0500 |
||||||
|
@@ -64,11 +64,39 @@ __typeof (isl_pointers__) isl_pointers__ |
||||||
|
static bool |
||||||
|
init_isl_pointers (void) |
||||||
|
{ |
||||||
|
- void *h; |
||||||
|
+ void *h = NULL; |
||||||
|
+ extern const char **toplev_main_argv; |
||||||
|
+ char *buf, *p; |
||||||
|
+ size_t len; |
||||||
|
|
||||||
|
if (isl_pointers__.inited) |
||||||
|
return isl_pointers__.h != NULL; |
||||||
|
- h = dlopen ("libisl.so.23", RTLD_LAZY); |
||||||
|
+ len = progname - toplev_main_argv[0]; |
||||||
|
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.23"); |
||||||
|
+ memcpy (buf, toplev_main_argv[0], len); |
||||||
|
+ strcpy (buf + len, "libisl.so.23"); |
||||||
|
+ len += sizeof "libisl.so.23"; |
||||||
|
+ p = strstr (buf, "/libexec/"); |
||||||
|
+ if (p != NULL) |
||||||
|
+ { |
||||||
|
+ while (1) |
||||||
|
+ { |
||||||
|
+ char *q = strstr (p + 8, "/libexec/"); |
||||||
|
+ if (q == NULL) |
||||||
|
+ break; |
||||||
|
+ p = q; |
||||||
|
+ } |
||||||
|
+ memmove (p + 4, p + 8, len - (p + 8 - buf)); |
||||||
|
+ h = dlopen (buf, RTLD_LAZY); |
||||||
|
+ if (h == NULL) |
||||||
|
+ { |
||||||
|
+ len = progname - toplev_main_argv[0]; |
||||||
|
+ memcpy (buf, toplev_main_argv[0], len); |
||||||
|
+ strcpy (buf + len, "libisl.so.23"); |
||||||
|
+ } |
||||||
|
+ } |
||||||
|
+ if (h == NULL) |
||||||
|
+ h = dlopen (buf, RTLD_LAZY); |
||||||
|
isl_pointers__.h = h; |
||||||
|
if (h == NULL) |
||||||
|
return false; |
@ -0,0 +1,754 @@ |
|||||||
|
--- libgfortran/Makefile.am.jj 2023-04-17 13:48:14.569100397 +0200 |
||||||
|
+++ libgfortran/Makefile.am 2023-05-22 15:03:22.905739752 +0200 |
||||||
|
@@ -45,6 +45,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi |
||||||
|
$(lt_host_flags) |
||||||
|
|
||||||
|
toolexeclib_LTLIBRARIES = libgfortran.la |
||||||
|
+noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la |
||||||
|
toolexeclib_DATA = libgfortran.spec |
||||||
|
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS) |
||||||
|
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ |
||||||
|
@@ -1154,6 +1155,98 @@ libgfortran_la_SOURCES = $(prereq_SRC) |
||||||
|
|
||||||
|
endif |
||||||
|
|
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_generated_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/generated/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_generated_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/generated/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_intrinsics_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/intrinsics/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_intrinsics_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/intrinsics/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_runtime_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/runtime/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_runtime_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/runtime/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.f90,%.lo,$(nonshared_intrinsics_f90_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/intrinsics/%.f90 |
||||||
|
+ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore |
||||||
|
+ |
||||||
|
+$(patsubst %.f90,%.o,$(nonshared_intrinsics_f90_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/intrinsics/%.f90 |
||||||
|
+ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore |
||||||
|
+ |
||||||
|
+nonshared_runtime_C_SRC = \ |
||||||
|
+nonshared-ISO_Fortran_binding.c |
||||||
|
+ |
||||||
|
+nonshared_io_C_SRC = \ |
||||||
|
+$(srcdir)/io/nonshared-transfer.c |
||||||
|
+ |
||||||
|
+nonshared_generated_C_SRC = \ |
||||||
|
+nonshared-findloc0_i1.c \ |
||||||
|
+nonshared-findloc0_i2.c \ |
||||||
|
+nonshared-findloc0_i4.c \ |
||||||
|
+nonshared-findloc0_i8.c \ |
||||||
|
+nonshared-findloc0_i16.c \ |
||||||
|
+nonshared-findloc0_r4.c \ |
||||||
|
+nonshared-findloc0_r8.c \ |
||||||
|
+nonshared-findloc0_r10.c \ |
||||||
|
+nonshared-findloc0_r16.c \ |
||||||
|
+nonshared-findloc0_c4.c \ |
||||||
|
+nonshared-findloc0_c8.c \ |
||||||
|
+nonshared-findloc0_c10.c \ |
||||||
|
+nonshared-findloc0_c16.c \ |
||||||
|
+nonshared-findloc0_s1.c \ |
||||||
|
+nonshared-findloc0_s4.c \ |
||||||
|
+nonshared-findloc1_i1.c \ |
||||||
|
+nonshared-findloc1_i2.c \ |
||||||
|
+nonshared-findloc1_i4.c \ |
||||||
|
+nonshared-findloc1_i8.c \ |
||||||
|
+nonshared-findloc1_i16.c \ |
||||||
|
+nonshared-findloc1_r4.c \ |
||||||
|
+nonshared-findloc1_r8.c \ |
||||||
|
+nonshared-findloc1_r10.c \ |
||||||
|
+nonshared-findloc1_r16.c \ |
||||||
|
+nonshared-findloc1_c4.c \ |
||||||
|
+nonshared-findloc1_c8.c \ |
||||||
|
+nonshared-findloc1_c10.c \ |
||||||
|
+nonshared-findloc1_c16.c \ |
||||||
|
+nonshared-findloc1_s1.c \ |
||||||
|
+nonshared-findloc1_s4.c \ |
||||||
|
+nonshared-findloc2_s1.c \ |
||||||
|
+nonshared-findloc2_s4.c |
||||||
|
+ |
||||||
|
+nonshared_intrinsics_C_SRC = \ |
||||||
|
+nonshared-is_contiguous.c \ |
||||||
|
+nonshared-trigd.c |
||||||
|
+ |
||||||
|
+nonshared_intrinsics_f90_SRC = \ |
||||||
|
+nonshared-random_init.f90 |
||||||
|
+ |
||||||
|
+libgfortran_nonshared80_la_SOURCES = \ |
||||||
|
+$(nonshared_runtime_C_SRC) \ |
||||||
|
+$(nonshared_generated_C_SRC) \ |
||||||
|
+$(nonshared_intrinsics_C_SRC) \ |
||||||
|
+$(nonshared_intrinsics_f90_SRC) \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_arithmetic.c \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_exceptions.c \ |
||||||
|
+$(srcdir)/io/nonshared-transfer.c \ |
||||||
|
+$(srcdir)/runtime/nonshared-error.c |
||||||
|
+ |
||||||
|
+libgfortran_nonshared110_la_SOURCES = \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_exceptions.c |
||||||
|
+ |
||||||
|
I_M4_DEPS=m4/iparm.m4 m4/mtype.m4 |
||||||
|
I_M4_DEPS0=$(I_M4_DEPS) m4/iforeach.m4 |
||||||
|
I_M4_DEPS1=$(I_M4_DEPS) m4/ifunction.m4 |
||||||
|
--- libgfortran/Makefile.in.jj 2023-04-17 13:48:14.573100340 +0200 |
||||||
|
+++ libgfortran/Makefile.in 2023-05-22 15:03:49.601374648 +0200 |
||||||
|
@@ -217,7 +217,8 @@ am__uninstall_files_from_dir = { \ |
||||||
|
am__installdirs = "$(DESTDIR)$(cafexeclibdir)" \ |
||||||
|
"$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" \ |
||||||
|
"$(DESTDIR)$(gfor_cdir)" "$(DESTDIR)$(fincludedir)" |
||||||
|
-LTLIBRARIES = $(cafexeclib_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) |
||||||
|
+LTLIBRARIES = $(cafexeclib_LTLIBRARIES) $(noinst_LTLIBRARIES) \ |
||||||
|
+ $(toolexeclib_LTLIBRARIES) |
||||||
|
libcaf_single_la_LIBADD = |
||||||
|
am_libcaf_single_la_OBJECTS = single.lo |
||||||
|
libcaf_single_la_OBJECTS = $(am_libcaf_single_la_OBJECTS) |
||||||
|
@@ -487,6 +488,40 @@ am__objects_65 = $(am__objects_3) $(am__ |
||||||
|
@onestep_FALSE@am_libgfortran_la_OBJECTS = $(am__objects_65) |
||||||
|
@onestep_TRUE@am_libgfortran_la_OBJECTS = libgfortran_c.lo |
||||||
|
libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS) |
||||||
|
+libgfortran_nonshared110_la_LIBADD = |
||||||
|
+am_libgfortran_nonshared110_la_OBJECTS = nonshared-ieee_exceptions.lo |
||||||
|
+libgfortran_nonshared110_la_OBJECTS = \ |
||||||
|
+ $(am_libgfortran_nonshared110_la_OBJECTS) |
||||||
|
+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 = |
||||||
|
+libgfortran_nonshared80_la_LIBADD = |
||||||
|
+am__objects_66 = nonshared-ISO_Fortran_binding.lo |
||||||
|
+am__objects_67 = nonshared-findloc0_i1.lo nonshared-findloc0_i2.lo \ |
||||||
|
+ nonshared-findloc0_i4.lo nonshared-findloc0_i8.lo \ |
||||||
|
+ nonshared-findloc0_i16.lo nonshared-findloc0_r4.lo \ |
||||||
|
+ nonshared-findloc0_r8.lo nonshared-findloc0_r10.lo \ |
||||||
|
+ nonshared-findloc0_r16.lo nonshared-findloc0_c4.lo \ |
||||||
|
+ nonshared-findloc0_c8.lo nonshared-findloc0_c10.lo \ |
||||||
|
+ nonshared-findloc0_c16.lo nonshared-findloc0_s1.lo \ |
||||||
|
+ nonshared-findloc0_s4.lo nonshared-findloc1_i1.lo \ |
||||||
|
+ nonshared-findloc1_i2.lo nonshared-findloc1_i4.lo \ |
||||||
|
+ nonshared-findloc1_i8.lo nonshared-findloc1_i16.lo \ |
||||||
|
+ nonshared-findloc1_r4.lo nonshared-findloc1_r8.lo \ |
||||||
|
+ nonshared-findloc1_r10.lo nonshared-findloc1_r16.lo \ |
||||||
|
+ nonshared-findloc1_c4.lo nonshared-findloc1_c8.lo \ |
||||||
|
+ nonshared-findloc1_c10.lo nonshared-findloc1_c16.lo \ |
||||||
|
+ nonshared-findloc1_s1.lo nonshared-findloc1_s4.lo \ |
||||||
|
+ nonshared-findloc2_s1.lo nonshared-findloc2_s4.lo |
||||||
|
+am__objects_68 = nonshared-is_contiguous.lo nonshared-trigd.lo |
||||||
|
+am__objects_69 = nonshared-random_init.lo |
||||||
|
+am_libgfortran_nonshared80_la_OBJECTS = $(am__objects_66) \ |
||||||
|
+ $(am__objects_67) $(am__objects_68) $(am__objects_69) \ |
||||||
|
+ nonshared-ieee_arithmetic.lo nonshared-ieee_exceptions.lo \ |
||||||
|
+ nonshared-transfer.lo nonshared-error.lo |
||||||
|
+libgfortran_nonshared80_la_OBJECTS = \ |
||||||
|
+ $(am_libgfortran_nonshared80_la_OBJECTS) |
||||||
|
AM_V_P = $(am__v_P_@AM_V@) |
||||||
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
||||||
|
am__v_P_0 = false |
||||||
|
@@ -503,10 +538,6 @@ DEFAULT_INCLUDES = -I.@am__isrc@ |
||||||
|
depcomp = $(SHELL) $(top_srcdir)/../depcomp |
||||||
|
am__depfiles_maybe = depfiles |
||||||
|
am__mv = mv -f |
||||||
|
-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 = |
||||||
|
PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ |
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) |
||||||
|
LTPPFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ |
||||||
|
@@ -550,7 +581,9 @@ AM_V_FC = $(am__v_FC_@AM_V@) |
||||||
|
am__v_FC_ = $(am__v_FC_@AM_DEFAULT_V@) |
||||||
|
am__v_FC_0 = @echo " FC " $@; |
||||||
|
am__v_FC_1 = |
||||||
|
-SOURCES = $(libcaf_single_la_SOURCES) $(libgfortran_la_SOURCES) |
||||||
|
+SOURCES = $(libcaf_single_la_SOURCES) $(libgfortran_la_SOURCES) \ |
||||||
|
+ $(libgfortran_nonshared110_la_SOURCES) \ |
||||||
|
+ $(libgfortran_nonshared80_la_SOURCES) |
||||||
|
am__can_run_installinfo = \ |
||||||
|
case $$AM_UPDATE_INFO_DIR in \ |
||||||
|
n|no|NO) false;; \ |
||||||
|
@@ -755,6 +788,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi |
||||||
|
$(lt_host_flags) |
||||||
|
|
||||||
|
toolexeclib_LTLIBRARIES = libgfortran.la |
||||||
|
+noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la |
||||||
|
toolexeclib_DATA = libgfortran.spec |
||||||
|
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS) |
||||||
|
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ |
||||||
|
@@ -1671,6 +1705,66 @@ prereq_SRC = $(gfor_src) $(gfor_built_sr |
||||||
|
#libgfortran_F.lo: |
||||||
|
# $(LTPPFCCOMPILE) -c -o $@ $^ -combine |
||||||
|
@onestep_TRUE@libgfortran_la_SOURCES = libgfortran_c.c $(filter-out %.c,$(prereq_SRC)) |
||||||
|
+nonshared_runtime_C_SRC = \ |
||||||
|
+nonshared-ISO_Fortran_binding.c |
||||||
|
+ |
||||||
|
+nonshared_io_C_SRC = \ |
||||||
|
+$(srcdir)/io/nonshared-transfer.c |
||||||
|
+ |
||||||
|
+nonshared_generated_C_SRC = \ |
||||||
|
+nonshared-findloc0_i1.c \ |
||||||
|
+nonshared-findloc0_i2.c \ |
||||||
|
+nonshared-findloc0_i4.c \ |
||||||
|
+nonshared-findloc0_i8.c \ |
||||||
|
+nonshared-findloc0_i16.c \ |
||||||
|
+nonshared-findloc0_r4.c \ |
||||||
|
+nonshared-findloc0_r8.c \ |
||||||
|
+nonshared-findloc0_r10.c \ |
||||||
|
+nonshared-findloc0_r16.c \ |
||||||
|
+nonshared-findloc0_c4.c \ |
||||||
|
+nonshared-findloc0_c8.c \ |
||||||
|
+nonshared-findloc0_c10.c \ |
||||||
|
+nonshared-findloc0_c16.c \ |
||||||
|
+nonshared-findloc0_s1.c \ |
||||||
|
+nonshared-findloc0_s4.c \ |
||||||
|
+nonshared-findloc1_i1.c \ |
||||||
|
+nonshared-findloc1_i2.c \ |
||||||
|
+nonshared-findloc1_i4.c \ |
||||||
|
+nonshared-findloc1_i8.c \ |
||||||
|
+nonshared-findloc1_i16.c \ |
||||||
|
+nonshared-findloc1_r4.c \ |
||||||
|
+nonshared-findloc1_r8.c \ |
||||||
|
+nonshared-findloc1_r10.c \ |
||||||
|
+nonshared-findloc1_r16.c \ |
||||||
|
+nonshared-findloc1_c4.c \ |
||||||
|
+nonshared-findloc1_c8.c \ |
||||||
|
+nonshared-findloc1_c10.c \ |
||||||
|
+nonshared-findloc1_c16.c \ |
||||||
|
+nonshared-findloc1_s1.c \ |
||||||
|
+nonshared-findloc1_s4.c \ |
||||||
|
+nonshared-findloc2_s1.c \ |
||||||
|
+nonshared-findloc2_s4.c |
||||||
|
+ |
||||||
|
+nonshared_intrinsics_C_SRC = \ |
||||||
|
+nonshared-is_contiguous.c \ |
||||||
|
+nonshared-trigd.c |
||||||
|
+ |
||||||
|
+nonshared_intrinsics_f90_SRC = \ |
||||||
|
+nonshared-random_init.f90 |
||||||
|
+ |
||||||
|
+libgfortran_nonshared80_la_SOURCES = \ |
||||||
|
+$(nonshared_runtime_C_SRC) \ |
||||||
|
+$(nonshared_generated_C_SRC) \ |
||||||
|
+$(nonshared_intrinsics_C_SRC) \ |
||||||
|
+$(nonshared_intrinsics_f90_SRC) \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_arithmetic.c \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_exceptions.c \ |
||||||
|
+$(srcdir)/io/nonshared-transfer.c \ |
||||||
|
+$(srcdir)/runtime/nonshared-error.c |
||||||
|
+ |
||||||
|
+libgfortran_nonshared110_la_SOURCES = \ |
||||||
|
+$(srcdir)/ieee/nonshared-ieee_exceptions.c |
||||||
|
+ |
||||||
|
I_M4_DEPS = m4/iparm.m4 m4/mtype.m4 |
||||||
|
I_M4_DEPS0 = $(I_M4_DEPS) m4/iforeach.m4 |
||||||
|
I_M4_DEPS1 = $(I_M4_DEPS) m4/ifunction.m4 |
||||||
|
@@ -1781,6 +1875,17 @@ clean-cafexeclibLTLIBRARIES: |
||||||
|
rm -f $${locs}; \ |
||||||
|
} |
||||||
|
|
||||||
|
+clean-noinstLTLIBRARIES: |
||||||
|
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
||||||
|
+ @list='$(noinst_LTLIBRARIES)'; \ |
||||||
|
+ locs=`for p in $$list; do echo $$p; done | \ |
||||||
|
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
||||||
|
+ sort -u`; \ |
||||||
|
+ test -z "$$locs" || { \ |
||||||
|
+ echo rm -f $${locs}; \ |
||||||
|
+ rm -f $${locs}; \ |
||||||
|
+ } |
||||||
|
+ |
||||||
|
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES) |
||||||
|
@$(NORMAL_INSTALL) |
||||||
|
@list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \ |
||||||
|
@@ -1822,6 +1927,12 @@ libcaf_single.la: $(libcaf_single_la_OBJ |
||||||
|
libgfortran.la: $(libgfortran_la_OBJECTS) $(libgfortran_la_DEPENDENCIES) $(EXTRA_libgfortran_la_DEPENDENCIES) |
||||||
|
$(AM_V_GEN)$(libgfortran_la_LINK) -rpath $(toolexeclibdir) $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) $(LIBS) |
||||||
|
|
||||||
|
+libgfortran_nonshared110.la: $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared110_la_DEPENDENCIES) |
||||||
|
+ $(AM_V_CCLD)$(LINK) $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_LIBADD) $(LIBS) |
||||||
|
+ |
||||||
|
+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) |
||||||
|
+ |
||||||
|
mostlyclean-compile: |
||||||
|
-rm -f *.$(OBJEXT) |
||||||
|
|
||||||
|
@@ -2273,6 +2384,45 @@ distclean-compile: |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minval_r8.Plo@am__quote@ |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_alloc.Plo@am__quote@ |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mvbits.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-ISO_Fortran_binding.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-error.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c10.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_i1.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_i16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_i2.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_i4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_i8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_r10.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_r16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_r4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_r8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_s1.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_s4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c10.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_i1.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_i16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_i2.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_i4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_i8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_r10.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_r16.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_r4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_r8.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_s1.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_s4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc2_s1.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc2_s4.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-ieee_arithmetic.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-ieee_exceptions.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-is_contiguous.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-transfer.Plo@am__quote@ |
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-trigd.Plo@am__quote@ |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r10.Plo@am__quote@ |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r16.Plo@am__quote@ |
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r17.Plo@am__quote@ |
||||||
|
@@ -7317,6 +7467,34 @@ ieee_helper.lo: ieee/ieee_helper.c |
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ieee_helper.lo `test -f 'ieee/ieee_helper.c' || echo '$(srcdir)/'`ieee/ieee_helper.c |
||||||
|
|
||||||
|
+nonshared-ieee_exceptions.lo: $(srcdir)/ieee/nonshared-ieee_exceptions.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-ieee_exceptions.lo -MD -MP -MF $(DEPDIR)/nonshared-ieee_exceptions.Tpo -c -o nonshared-ieee_exceptions.lo `test -f '$(srcdir)/ieee/nonshared-ieee_exceptions.c' || echo '$(srcdir)/'`$(srcdir)/ieee/nonshared-ieee_exceptions.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nonshared-ieee_exceptions.Tpo $(DEPDIR)/nonshared-ieee_exceptions.Plo |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(srcdir)/ieee/nonshared-ieee_exceptions.c' object='nonshared-ieee_exceptions.lo' libtool=yes @AMDEPBACKSLASH@ |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
||||||
|
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-ieee_exceptions.lo `test -f '$(srcdir)/ieee/nonshared-ieee_exceptions.c' || echo '$(srcdir)/'`$(srcdir)/ieee/nonshared-ieee_exceptions.c |
||||||
|
+ |
||||||
|
+nonshared-ieee_arithmetic.lo: $(srcdir)/ieee/nonshared-ieee_arithmetic.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-ieee_arithmetic.lo -MD -MP -MF $(DEPDIR)/nonshared-ieee_arithmetic.Tpo -c -o nonshared-ieee_arithmetic.lo `test -f '$(srcdir)/ieee/nonshared-ieee_arithmetic.c' || echo '$(srcdir)/'`$(srcdir)/ieee/nonshared-ieee_arithmetic.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nonshared-ieee_arithmetic.Tpo $(DEPDIR)/nonshared-ieee_arithmetic.Plo |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(srcdir)/ieee/nonshared-ieee_arithmetic.c' object='nonshared-ieee_arithmetic.lo' libtool=yes @AMDEPBACKSLASH@ |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
||||||
|
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-ieee_arithmetic.lo `test -f '$(srcdir)/ieee/nonshared-ieee_arithmetic.c' || echo '$(srcdir)/'`$(srcdir)/ieee/nonshared-ieee_arithmetic.c |
||||||
|
+ |
||||||
|
+nonshared-transfer.lo: $(srcdir)/io/nonshared-transfer.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-transfer.lo -MD -MP -MF $(DEPDIR)/nonshared-transfer.Tpo -c -o nonshared-transfer.lo `test -f '$(srcdir)/io/nonshared-transfer.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-transfer.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nonshared-transfer.Tpo $(DEPDIR)/nonshared-transfer.Plo |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(srcdir)/io/nonshared-transfer.c' object='nonshared-transfer.lo' libtool=yes @AMDEPBACKSLASH@ |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
||||||
|
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-transfer.lo `test -f '$(srcdir)/io/nonshared-transfer.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-transfer.c |
||||||
|
+ |
||||||
|
+nonshared-error.lo: $(srcdir)/runtime/nonshared-error.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-error.lo -MD -MP -MF $(DEPDIR)/nonshared-error.Tpo -c -o nonshared-error.lo `test -f '$(srcdir)/runtime/nonshared-error.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-error.c |
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nonshared-error.Tpo $(DEPDIR)/nonshared-error.Plo |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(srcdir)/runtime/nonshared-error.c' object='nonshared-error.lo' libtool=yes @AMDEPBACKSLASH@ |
||||||
|
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
||||||
|
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-error.lo `test -f '$(srcdir)/runtime/nonshared-error.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-error.c |
||||||
|
+ |
||||||
|
.f90.o: |
||||||
|
$(AM_V_FC)$(FCCOMPILE) -c -o $@ $< |
||||||
|
|
||||||
|
@@ -7511,7 +7689,8 @@ maintainer-clean-generic: |
||||||
|
clean: clean-am |
||||||
|
|
||||||
|
clean-am: clean-cafexeclibLTLIBRARIES clean-generic clean-libtool \ |
||||||
|
- clean-local clean-toolexeclibLTLIBRARIES mostlyclean-am |
||||||
|
+ clean-local clean-noinstLTLIBRARIES \ |
||||||
|
+ clean-toolexeclibLTLIBRARIES mostlyclean-am |
||||||
|
|
||||||
|
distclean: distclean-am |
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES) |
||||||
|
@@ -7591,14 +7770,15 @@ uninstall-am: uninstall-cafexeclibLTLIBR |
||||||
|
.PHONY: CTAGS GTAGS TAGS all all-am all-local am--refresh check \ |
||||||
|
check-am clean clean-cafexeclibLTLIBRARIES clean-cscope \ |
||||||
|
clean-generic clean-libtool clean-local \ |
||||||
|
- clean-toolexeclibLTLIBRARIES cscope cscopelist-am ctags \ |
||||||
|
- ctags-am distclean distclean-compile distclean-generic \ |
||||||
|
- distclean-hdr distclean-libtool distclean-local distclean-tags \ |
||||||
|
- dvi dvi-am html html-am info info-am install install-am \ |
||||||
|
- install-cafexeclibLTLIBRARIES install-data install-data-am \ |
||||||
|
- install-dvi install-dvi-am install-exec install-exec-am \ |
||||||
|
- install-exec-local install-gfor_cHEADERS install-html \ |
||||||
|
- install-html-am install-info install-info-am install-man \ |
||||||
|
+ clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES cscope \ |
||||||
|
+ cscopelist-am ctags ctags-am distclean distclean-compile \ |
||||||
|
+ distclean-generic distclean-hdr distclean-libtool \ |
||||||
|
+ distclean-local distclean-tags dvi dvi-am html html-am info \ |
||||||
|
+ info-am install install-am install-cafexeclibLTLIBRARIES \ |
||||||
|
+ install-data install-data-am install-dvi install-dvi-am \ |
||||||
|
+ install-exec install-exec-am install-exec-local \ |
||||||
|
+ install-gfor_cHEADERS install-html install-html-am \ |
||||||
|
+ install-info install-info-am install-man \ |
||||||
|
install-nodist_fincludeHEADERS install-pdf install-pdf-am \ |
||||||
|
install-ps install-ps-am install-strip install-toolexeclibDATA \ |
||||||
|
install-toolexeclibLTLIBRARIES installcheck installcheck-am \ |
||||||
|
@@ -7674,6 +7854,38 @@ ieee_arithmetic.mod: ieee_arithmetic.lo |
||||||
|
@onestep_TRUE@libgfortran_c.lo: $(filter %.c,$(prereq_SRC)) |
||||||
|
@onestep_TRUE@ $(LTCOMPILE) -c -o $@ $^ -combine |
||||||
|
|
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_generated_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/generated/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_generated_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/generated/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_intrinsics_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/intrinsics/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_intrinsics_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/intrinsics/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.lo,$(nonshared_runtime_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/runtime/%.c |
||||||
|
+ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.c,%.o,$(nonshared_runtime_C_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/runtime/%.c |
||||||
|
+ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED |
||||||
|
+ |
||||||
|
+$(patsubst %.f90,%.lo,$(nonshared_intrinsics_f90_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.lo: $(srcdir)/intrinsics/%.f90 |
||||||
|
+ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore |
||||||
|
+ |
||||||
|
+$(patsubst %.f90,%.o,$(nonshared_intrinsics_f90_SRC) $(nonshared)): \ |
||||||
|
+nonshared-%.o: $(srcdir)/intrinsics/%.f90 |
||||||
|
+ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore |
||||||
|
+ |
||||||
|
kinds.h: $(srcdir)/mk-kinds-h.sh |
||||||
|
$(SHELL) $(srcdir)/mk-kinds-h.sh '@LIBGOMP_CHECKED_INT_KINDS@' \ |
||||||
|
'@LIBGOMP_CHECKED_REAL_KINDS@' \ |
||||||
|
--- libgfortran/ieee/nonshared-ieee_exceptions.c.jj 2023-05-22 12:59:24.852490604 +0200 |
||||||
|
+++ libgfortran/ieee/nonshared-ieee_exceptions.c 2023-05-22 15:02:43.023285198 +0200 |
||||||
|
@@ -0,0 +1,50 @@ |
||||||
|
+/* Helper functions in C for IEEE modules |
||||||
|
+ Copyright (C) 2013-2023 Free Software Foundation, Inc. |
||||||
|
+ Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
||||||
|
+ |
||||||
|
+This file is part of the GNU Fortran runtime library (libgfortran). |
||||||
|
+ |
||||||
|
+Libgfortran is free software; you can redistribute it and/or |
||||||
|
+modify it under the terms of the GNU General Public |
||||||
|
+License as published by the Free Software Foundation; either |
||||||
|
+version 3 of the License, or (at your option) any later version. |
||||||
|
+ |
||||||
|
+Libgfortran is distributed in the hope that it will be useful, |
||||||
|
+but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
+GNU General Public License for more details. |
||||||
|
+ |
||||||
|
+Under Section 7 of GPL version 3, you are granted additional |
||||||
|
+permissions described in the GCC Runtime Library Exception, version |
||||||
|
+3.1, as published by the Free Software Foundation. |
||||||
|
+ |
||||||
|
+You should have received a copy of the GNU General Public License and |
||||||
|
+a copy of the GCC Runtime Library Exception along with this program; |
||||||
|
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
||||||
|
+<http://www.gnu.org/licenses/>. */ |
||||||
|
+ |
||||||
|
+#include "libgfortran.h" |
||||||
|
+ |
||||||
|
+#define options ((const options_t) {}) |
||||||
|
+ |
||||||
|
+#include "fpu-target.h" |
||||||
|
+ |
||||||
|
+struct ieee_modes_type { |
||||||
|
+ GFC_INTEGER_4 rounding, underflow, halting; |
||||||
|
+}; |
||||||
|
+ |
||||||
|
+void |
||||||
|
+__ieee_exceptions_MOD_ieee_get_modes (struct ieee_modes_type *modes) |
||||||
|
+{ |
||||||
|
+ modes->rounding = get_fpu_rounding_mode (); |
||||||
|
+ modes->underflow = get_fpu_underflow_mode (); |
||||||
|
+ modes->halting = get_fpu_trap_exceptions (); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+void |
||||||
|
+__ieee_exceptions_MOD_ieee_set_modes (struct ieee_modes_type *modes) |
||||||
|
+{ |
||||||
|
+ set_fpu_rounding_mode (modes->rounding); |
||||||
|
+ set_fpu_underflow_mode (modes->underflow); |
||||||
|
+ set_fpu_trap_exceptions (modes->halting, ~modes->halting); |
||||||
|
+} |
||||||
|
--- libgfortran/ieee/nonshared-ieee_arithmetic.c.jj 2023-05-22 12:20:32.127390024 +0200 |
||||||
|
+++ libgfortran/ieee/nonshared-ieee_arithmetic.c 2023-05-22 12:59:07.790724711 +0200 |
||||||
|
@@ -0,0 +1,64 @@ |
||||||
|
+/* Helper functions in C for IEEE modules |
||||||
|
+ Copyright (C) 2013-2023 Free Software Foundation, Inc. |
||||||
|
+ Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
||||||
|
+ |
||||||
|
+This file is part of the GNU Fortran runtime library (libgfortran). |
||||||
|
+ |
||||||
|
+Libgfortran is free software; you can redistribute it and/or |
||||||
|
+modify it under the terms of the GNU General Public |
||||||
|
+License as published by the Free Software Foundation; either |
||||||
|
+version 3 of the License, or (at your option) any later version. |
||||||
|
+ |
||||||
|
+Libgfortran is distributed in the hope that it will be useful, |
||||||
|
+but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
+GNU General Public License for more details. |
||||||
|
+ |
||||||
|
+Under Section 7 of GPL version 3, you are granted additional |
||||||
|
+permissions described in the GCC Runtime Library Exception, version |
||||||
|
+3.1, as published by the Free Software Foundation. |
||||||
|
+ |
||||||
|
+You should have received a copy of the GNU General Public License and |
||||||
|
+a copy of the GCC Runtime Library Exception along with this program; |
||||||
|
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
||||||
|
+<http://www.gnu.org/licenses/>. */ |
||||||
|
+ |
||||||
|
+#include "libgfortran.h" |
||||||
|
+ |
||||||
|
+GFC_LOGICAL_4 |
||||||
|
+__ieee_arithmetic_MOD_ieee_support_subnormal_4 (gfc_array_r4 *arg) |
||||||
|
+{ |
||||||
|
+ (void) arg; |
||||||
|
+ return 1; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+GFC_LOGICAL_4 |
||||||
|
+__ieee_arithmetic_MOD_ieee_support_subnormal_8 (gfc_array_r8 *arg) |
||||||
|
+{ |
||||||
|
+ (void) arg; |
||||||
|
+ return 1; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+#ifdef HAVE_GFC_REAL_10 |
||||||
|
+GFC_LOGICAL_4 |
||||||
|
+__ieee_arithmetic_MOD_ieee_support_subnormal_10 (gfc_array_r10 *arg) |
||||||
|
+{ |
||||||
|
+ (void) arg; |
||||||
|
+ return 1; |
||||||
|
+} |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
+#ifdef HAVE_GFC_REAL_16 |
||||||
|
+GFC_LOGICAL_4 |
||||||
|
+__ieee_arithmetic_MOD_ieee_support_subnormal_16 (gfc_array_r16 *arg) |
||||||
|
+{ |
||||||
|
+ (void) arg; |
||||||
|
+ return 1; |
||||||
|
+} |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
+GFC_LOGICAL_4 |
||||||
|
+__ieee_arithmetic_MOD_ieee_support_subnormal_noarg (void) |
||||||
|
+{ |
||||||
|
+ return 1; |
||||||
|
+} |
||||||
|
--- libgfortran/libgfortran.h.jj 2023-04-17 13:48:20.204019218 +0200 |
||||||
|
+++ libgfortran/libgfortran.h 2023-05-22 12:59:07.795724642 +0200 |
||||||
|
@@ -216,7 +216,7 @@ extern int __mingw_snprintf (char *, siz |
||||||
|
# define internal_proto(x) sym_rename(x, IPREFIX(x)) |
||||||
|
#endif |
||||||
|
|
||||||
|
-#if defined(HAVE_ATTRIBUTE_VISIBILITY) && defined(HAVE_ATTRIBUTE_ALIAS) |
||||||
|
+#if defined(HAVE_ATTRIBUTE_VISIBILITY) && defined(HAVE_ATTRIBUTE_ALIAS) && !defined(LIBGFORTRAN_NONSHARED) |
||||||
|
# define export_proto(x) sym_rename(x, PREFIX(x)) |
||||||
|
# define export_proto_np(x) extern char swallow_semicolon |
||||||
|
# define iexport_proto(x) internal_proto(x) |
||||||
|
@@ -291,6 +291,10 @@ typedef GFC_UINTEGER_4 gfc_char4_t; |
||||||
|
simply equal to the kind parameter itself. */ |
||||||
|
#define GFC_SIZE_OF_CHAR_KIND(kind) (kind) |
||||||
|
|
||||||
|
+#ifdef LIBGFORTRAN_NONSHARED |
||||||
|
+#define big_endian (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
#define GFOR_POINTER_TO_L1(p, kind) \ |
||||||
|
((__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1: 0) * (kind - 1) + (GFC_LOGICAL_1 *)(p)) |
||||||
|
|
||||||
|
@@ -2024,4 +2028,63 @@ extern int __snprintfieee128 (char *, si |
||||||
|
#define HAVE_GFC_UINTEGER_1 1 |
||||||
|
#define HAVE_GFC_UINTEGER_4 1 |
||||||
|
|
||||||
|
+#ifdef LIBGFORTRAN_NONSHARED |
||||||
|
+#include <stdlib.h> |
||||||
|
+#include <string.h> |
||||||
|
+#include <errno.h> |
||||||
|
+ |
||||||
|
+#define internal_malloc_size nonshared_internal_malloc_size |
||||||
|
+#define xmalloc nonshared_internal_xmalloc |
||||||
|
+#define xmallocarray nonshared_internal_xmallocarray |
||||||
|
+#define reshape_packed nonshared_reshape_packed |
||||||
|
+static inline __attribute__((__always_inline__, __unused__)) |
||||||
|
+void * |
||||||
|
+internal_malloc_size (size_t size) |
||||||
|
+{ |
||||||
|
+ void *p; |
||||||
|
+ |
||||||
|
+ if (size == 0) |
||||||
|
+ return NULL; |
||||||
|
+ |
||||||
|
+ p = (void *) malloc (size); |
||||||
|
+ if (p == NULL) |
||||||
|
+ os_error ("Memory allocation failed"); |
||||||
|
+ return p; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static inline __attribute__((__always_inline__, __unused__)) |
||||||
|
+void * |
||||||
|
+xmalloc (size_t size) |
||||||
|
+{ |
||||||
|
+ return internal_malloc_size (size ? size : 1); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static inline __attribute__((__always_inline__, __unused__)) |
||||||
|
+void * |
||||||
|
+xmallocarray (size_t nmemb, size_t size) |
||||||
|
+{ |
||||||
|
+ if (!nmemb || !size) |
||||||
|
+ size = nmemb = 1; |
||||||
|
+ else if (__builtin_expect ((nmemb | size) |
||||||
|
+ >= (((size_t) 1) << (__CHAR_BIT__ |
||||||
|
+ * sizeof (size_t) / 2)), 0) |
||||||
|
+ && nmemb > __SIZE_MAX__ / size) |
||||||
|
+ { |
||||||
|
+ errno = ENOMEM; |
||||||
|
+ os_error ("Integer overflow in xmallocarray"); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ return internal_malloc_size (nmemb * size); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static inline __attribute__((__always_inline__, __unused__)) |
||||||
|
+#include "intrinsics/reshape_packed.c" |
||||||
|
+ |
||||||
|
+struct no_bounds_check { int bounds_check; }; |
||||||
|
+#define compile_options ((struct no_bounds_check) { .bounds_check = 0 }) |
||||||
|
+ |
||||||
|
+#define internal_error(x, y...) runtime_error (y) |
||||||
|
+ |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
#endif /* LIBGFOR_H */ |
||||||
|
--- libgfortran/runtime/nonshared-error.c.jj 2023-05-22 12:20:32.211388875 +0200 |
||||||
|
+++ libgfortran/runtime/nonshared-error.c 2023-05-22 12:59:07.807724478 +0200 |
||||||
|
@@ -0,0 +1,56 @@ |
||||||
|
+/* Copyright (C) 2020-2023 Free Software Foundation, Inc. |
||||||
|
+ |
||||||
|
+This file is part of the GNU Fortran runtime library (libgfortran). |
||||||
|
+ |
||||||
|
+Libgfortran is free software; you can redistribute it and/or modify |
||||||
|
+it under the terms of the GNU General Public License as published by |
||||||
|
+the Free Software Foundation; either version 3, or (at your option) |
||||||
|
+any later version. |
||||||
|
+ |
||||||
|
+Libgfortran is distributed in the hope that it will be useful, |
||||||
|
+but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
+GNU General Public License for more details. |
||||||
|
+ |
||||||
|
+Under Section 7 of GPL version 3, you are granted additional |
||||||
|
+permissions described in the GCC Runtime Library Exception, version |
||||||
|
+3.1, as published by the Free Software Foundation. |
||||||
|
+ |
||||||
|
+You should have received a copy of the GNU General Public License and |
||||||
|
+a copy of the GCC Runtime Library Exception along with this program; |
||||||
|
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
||||||
|
+<http://www.gnu.org/licenses/>. */ |
||||||
|
+ |
||||||
|
+ |
||||||
|
+#define LIBGFORTRAN_NONSHARED |
||||||
|
+#include "libgfortran.h" |
||||||
|
+#include "io.h" |
||||||
|
+#include "async.h" |
||||||
|
+ |
||||||
|
+#include <string.h> |
||||||
|
+#include <stdio.h> |
||||||
|
+ |
||||||
|
+/* Improved version of os_error with a printf style format string and |
||||||
|
+ a locus. */ |
||||||
|
+ |
||||||
|
+void |
||||||
|
+os_error_at (const char *where, const char *message, ...) |
||||||
|
+{ |
||||||
|
+ char buf[4096]; |
||||||
|
+ size_t len = strlen (where); |
||||||
|
+ int written; |
||||||
|
+ va_list ap; |
||||||
|
+ |
||||||
|
+ if (len >= 2048) |
||||||
|
+ os_error ("Unknown error"); |
||||||
|
+ memcpy (buf, where, len); |
||||||
|
+ memcpy (buf + len, ": ", 2); |
||||||
|
+ va_start (ap, message); |
||||||
|
+ written = vsnprintf (buf + len + 2, 4095 - len - 2, message, ap); |
||||||
|
+ va_end (ap); |
||||||
|
+ if (written < 0) |
||||||
|
+ written = 0; |
||||||
|
+ buf[len + 2 + written] = '\0'; |
||||||
|
+ os_error (buf); |
||||||
|
+} |
||||||
|
+iexport(os_error_at); |
||||||
|
--- libgfortran/io/nonshared-transfer.c.jj 2023-05-22 12:20:32.223388711 +0200 |
||||||
|
+++ libgfortran/io/nonshared-transfer.c 2023-05-22 12:59:07.816724354 +0200 |
||||||
|
@@ -0,0 +1,42 @@ |
||||||
|
+/* Copyright (C) 2002-2023 Free Software Foundation, Inc. |
||||||
|
+ Contributed by Andy Vaught |
||||||
|
+ Namelist transfer functions contributed by Paul Thomas |
||||||
|
+ F2003 I/O support contributed by Jerry DeLisle |
||||||
|
+ |
||||||
|
+This file is part of the GNU Fortran runtime library (libgfortran). |
||||||
|
+ |
||||||
|
+Libgfortran is free software; you can redistribute it and/or modify |
||||||
|
+it under the terms of the GNU General Public License as published by |
||||||
|
+the Free Software Foundation; either version 3, or (at your option) |
||||||
|
+any later version. |
||||||
|
+ |
||||||
|
+Libgfortran is distributed in the hope that it will be useful, |
||||||
|
+but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
+GNU General Public License for more details. |
||||||
|
+ |
||||||
|
+Under Section 7 of GPL version 3, you are granted additional |
||||||
|
+permissions described in the GCC Runtime Library Exception, version |
||||||
|
+3.1, as published by the Free Software Foundation. |
||||||
|
+ |
||||||
|
+You should have received a copy of the GNU General Public License and |
||||||
|
+a copy of the GCC Runtime Library Exception along with this program; |
||||||
|
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
||||||
|
+<http://www.gnu.org/licenses/>. */ |
||||||
|
+ |
||||||
|
+ |
||||||
|
+/* transfer.c -- Top level handling of data transfer statements. */ |
||||||
|
+ |
||||||
|
+#include "io.h" |
||||||
|
+#include "fbuf.h" |
||||||
|
+#include "format.h" |
||||||
|
+#include "unix.h" |
||||||
|
+#include "async.h" |
||||||
|
+#include <string.h> |
||||||
|
+#include <errno.h> |
||||||
|
+ |
||||||
|
+void |
||||||
|
+st_wait_async (st_parameter_wait *wtp) |
||||||
|
+{ |
||||||
|
+ (void) wtp; |
||||||
|
+} |
@ -0,0 +1,17 @@ |
|||||||
|
2008-06-09 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs. |
||||||
|
|
||||||
|
--- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200 |
||||||
|
+++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200 |
||||||
|
@@ -42,8 +42,8 @@ typedef struct |
||||||
|
|
||||||
|
typedef struct |
||||||
|
{ |
||||||
|
- unsigned char _x[@OMP_NEST_LOCK_SIZE@] |
||||||
|
- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@))); |
||||||
|
+ unsigned char _x[8 + sizeof (void *)] |
||||||
|
+ __attribute__((__aligned__(sizeof (void *)))); |
||||||
|
} omp_nest_lock_t; |
||||||
|
#endif |
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,24 @@ |
|||||||
|
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100 |
||||||
|
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100 |
||||||
|
@@ -5,6 +5,8 @@ |
||||||
|
<a class="link" href="https://www.fsf.org" target="_top">FSF |
||||||
|
</a> |
||||||
|
</p><p> |
||||||
|
+ Release 13.2.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 |
||||||
|
@@ -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 13.2.1 release</a>, |
||||||
|
+ online |
||||||
|
<a class="link" href="http://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"> |
@ -0,0 +1,27 @@ |
|||||||
|
libtool sucks. |
||||||
|
--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100 |
||||||
|
+++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200 |
||||||
|
@@ -5394,6 +5394,7 @@ EOF |
||||||
|
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 |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
||||||
|
@@ -6071,6 +6072,7 @@ EOF |
||||||
|
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 |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
||||||
|
@@ -6120,6 +6122,7 @@ EOF |
||||||
|
rpath= |
||||||
|
hardcode_libdirs= |
||||||
|
for libdir in $finalize_rpath; do |
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
@ -0,0 +1,37 @@ |
|||||||
|
2010-02-08 Roland McGrath <roland@redhat.com> |
||||||
|
|
||||||
|
* config/gnu-user.h (LINK_EH_SPEC): Pass --no-add-needed to the linker. |
||||||
|
* config/alpha/elf.h (LINK_EH_SPEC): Likewise. |
||||||
|
* config/ia64/linux.h (LINK_EH_SPEC): Likewise. |
||||||
|
|
||||||
|
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100 |
||||||
|
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100 |
||||||
|
@@ -168,5 +168,5 @@ extern int alpha_this_gpdisp_sequence_nu |
||||||
|
I imagine that other systems will catch up. In the meantime, it |
||||||
|
doesn't harm to make sure that the data exists to be used later. */ |
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR) |
||||||
|
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} " |
||||||
|
#endif |
||||||
|
--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100 |
||||||
|
+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100 |
||||||
|
@@ -76,7 +76,7 @@ do { \ |
||||||
|
Signalize that because we have fde-glibc, we don't need all C shared libs |
||||||
|
linked against -lgcc_s. */ |
||||||
|
#undef LINK_EH_SPEC |
||||||
|
-#define LINK_EH_SPEC "" |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed " |
||||||
|
|
||||||
|
#undef TARGET_INIT_LIBFUNCS |
||||||
|
#define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs |
||||||
|
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100 |
||||||
|
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100 |
||||||
|
@@ -106,7 +106,7 @@ see the files COPYING3 and COPYING.RUNTI |
||||||
|
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC |
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR) |
||||||
|
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} " |
||||||
|
#endif |
||||||
|
|
||||||
|
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \ |
@ -0,0 +1,163 @@ |
|||||||
|
PR target/110792: Early clobber issues with rot32di2_doubleword on i386. |
||||||
|
|
||||||
|
This patch is a conservative fix for PR target/110792, a wrong-code |
||||||
|
regression affecting doubleword rotations by BITS_PER_WORD, which |
||||||
|
effectively swaps the highpart and lowpart words, when the source to be |
||||||
|
rotated resides in memory. The issue is that if the register used to |
||||||
|
hold the lowpart of the destination is mentioned in the address of |
||||||
|
the memory operand, the current define_insn_and_split unintentionally |
||||||
|
clobbers it before reading the highpart. |
||||||
|
|
||||||
|
Hence, for the testcase, the incorrectly generated code looks like: |
||||||
|
|
||||||
|
salq $4, %rdi // calculate address |
||||||
|
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr |
||||||
|
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart |
||||||
|
|
||||||
|
Traditionally, the textbook way to fix this would be to add an |
||||||
|
explicit early clobber to the instruction's constraints. |
||||||
|
|
||||||
|
(define_insn_and_split "<insn>32di2_doubleword" |
||||||
|
- [(set (match_operand:DI 0 "register_operand" "=r,r,r") |
||||||
|
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r") |
||||||
|
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o") |
||||||
|
(const_int 32)))] |
||||||
|
|
||||||
|
but unfortunately this currently generates significantly worse code, |
||||||
|
due to a strange choice of reloads (effectively memcpy), which ends up |
||||||
|
looking like: |
||||||
|
|
||||||
|
salq $4, %rdi // calculate address |
||||||
|
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg. |
||||||
|
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack |
||||||
|
movq -8(%rsp), %rdi // load highpart |
||||||
|
movq -16(%rsp), %rbp // load lowpart |
||||||
|
|
||||||
|
Note that reload's "&" doesn't distinguish between the memory being |
||||||
|
early clobbered, vs the registers used in an addressing mode being |
||||||
|
early clobbered. |
||||||
|
|
||||||
|
The fix proposed in this patch is to remove the third alternative, that |
||||||
|
allowed offsetable memory as an operand, forcing reload to place the |
||||||
|
operand into a register before the rotation. This results in: |
||||||
|
|
||||||
|
salq $4, %rdi |
||||||
|
movq WHIRL_S(%rdi), %rax |
||||||
|
movq WHIRL_S+8(%rdi), %rdi |
||||||
|
movq %rax, %rbp |
||||||
|
|
||||||
|
I believe there's a more advanced solution, by swapping the order of |
||||||
|
the loads (if first destination register is mentioned in the address), |
||||||
|
or inserting a lea insn (if both destination registers are mentioned |
||||||
|
in the address), but this fix is a minimal "safe" solution, that |
||||||
|
should hopefully be suitable for backporting. |
||||||
|
|
||||||
|
2023-08-06 Roger Sayle <roger@nextmovesoftware.com> |
||||||
|
|
||||||
|
gcc/testsuite/ChangeLog |
||||||
|
PR target/110792 |
||||||
|
* gcc.target/i386/pr110792.c: Remove dg-final scan-assembler-not. |
||||||
|
|
||||||
|
2023-08-03 Roger Sayle <roger@nextmovesoftware.com> |
||||||
|
|
||||||
|
gcc/ChangeLog |
||||||
|
PR target/110792 |
||||||
|
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits |
||||||
|
place operand in a register before gen_<insn>64ti2_doubleword. |
||||||
|
(<any_rotate>di3): Likewise, for rotations by 32 bits, place |
||||||
|
operand in a register before gen_<insn>32di2_doubleword. |
||||||
|
(<any_rotate>32di2_doubleword): Constrain operand to be in register. |
||||||
|
(<any_rotate>64ti2_doubleword): Likewise. |
||||||
|
|
||||||
|
gcc/testsuite/ChangeLog |
||||||
|
PR target/110792 |
||||||
|
* g++.target/i386/pr110792.C: New 32-bit C++ test case. |
||||||
|
* gcc.target/i386/pr110792.c: New 64-bit C test case. |
||||||
|
|
||||||
|
--- gcc/config/i386/i386.md |
||||||
|
+++ gcc/config/i386/i386.md |
||||||
|
@@ -15341,7 +15341,10 @@ (define_expand "<insn>ti3" |
||||||
|
emit_insn (gen_ix86_<insn>ti3_doubleword |
||||||
|
(operands[0], operands[1], operands[2])); |
||||||
|
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64) |
||||||
|
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1])); |
||||||
|
+ { |
||||||
|
+ operands[1] = force_reg (TImode, operands[1]); |
||||||
|
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1])); |
||||||
|
+ } |
||||||
|
else |
||||||
|
{ |
||||||
|
rtx amount = force_reg (QImode, operands[2]); |
||||||
|
@@ -15376,7 +15379,10 @@ (define_expand "<insn>di3" |
||||||
|
emit_insn (gen_ix86_<insn>di3_doubleword |
||||||
|
(operands[0], operands[1], operands[2])); |
||||||
|
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32) |
||||||
|
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1])); |
||||||
|
+ { |
||||||
|
+ operands[1] = force_reg (DImode, operands[1]); |
||||||
|
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1])); |
||||||
|
+ } |
||||||
|
else |
||||||
|
FAIL; |
||||||
|
|
||||||
|
@@ -15544,8 +15550,8 @@ (define_insn_and_split "ix86_rotr<dwi>3_doubleword" |
||||||
|
}) |
||||||
|
|
||||||
|
(define_insn_and_split "<insn>32di2_doubleword" |
||||||
|
- [(set (match_operand:DI 0 "register_operand" "=r,r,r") |
||||||
|
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o") |
||||||
|
+ [(set (match_operand:DI 0 "register_operand" "=r,r") |
||||||
|
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r") |
||||||
|
(const_int 32)))] |
||||||
|
"!TARGET_64BIT" |
||||||
|
"#" |
||||||
|
@@ -15562,8 +15568,8 @@ (define_insn_and_split "<insn>32di2_doubleword" |
||||||
|
}) |
||||||
|
|
||||||
|
(define_insn_and_split "<insn>64ti2_doubleword" |
||||||
|
- [(set (match_operand:TI 0 "register_operand" "=r,r,r") |
||||||
|
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o") |
||||||
|
+ [(set (match_operand:TI 0 "register_operand" "=r,r") |
||||||
|
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r") |
||||||
|
(const_int 64)))] |
||||||
|
"TARGET_64BIT" |
||||||
|
"#" |
||||||
|
--- gcc/testsuite/g++.target/i386/pr110792.C |
||||||
|
+++ gcc/testsuite/g++.target/i386/pr110792.C |
||||||
|
@@ -0,0 +1,16 @@ |
||||||
|
+/* { dg-do compile { target ia32 } } */ |
||||||
|
+/* { dg-options "-O2" } */ |
||||||
|
+ |
||||||
|
+template <int ROT, typename T> |
||||||
|
+inline T rotr(T input) |
||||||
|
+{ |
||||||
|
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8}; |
||||||
|
+unsigned long long whirl(unsigned char x0) |
||||||
|
+{ |
||||||
|
+ const unsigned long long s4 = WHIRL_S[x0&0xFF]; |
||||||
|
+ return rotr<32>(s4); |
||||||
|
+} |
||||||
|
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */ |
||||||
|
--- gcc/testsuite/gcc.target/i386/pr110792.c |
||||||
|
+++ gcc/testsuite/gcc.target/i386/pr110792.c |
||||||
|
@@ -0,0 +1,17 @@ |
||||||
|
+/* { dg-do compile { target int128 } } */ |
||||||
|
+/* { dg-options "-O2" } */ |
||||||
|
+ |
||||||
|
+static inline unsigned __int128 rotr(unsigned __int128 input) |
||||||
|
+{ |
||||||
|
+ return ((input >> 64) | (input << (64))); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8}; |
||||||
|
+unsigned __int128 whirl(unsigned char x0) |
||||||
|
+{ |
||||||
|
+ register int t __asm("rdi") = x0&0xFF; |
||||||
|
+ const unsigned __int128 s4 = WHIRL_S[t]; |
||||||
|
+ register unsigned __int128 tt __asm("rdi") = rotr(s4); |
||||||
|
+ asm("":::"memory"); |
||||||
|
+ return tt; |
||||||
|
+} |
@ -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 |
@ -0,0 +1,40 @@ |
|||||||
|
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500 |
||||||
|
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500 |
||||||
|
@@ -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} 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 |
||||||
|
@@ -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} 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 |
||||||
|
+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500 |
||||||
|
@@ -1002,7 +1002,7 @@ sparc-*-elf*) |
||||||
|
tmake_file="${tmake_file} t-fdpbit t-crtfm" |
||||||
|
extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" |
||||||
|
;; |
||||||
|
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6 |
||||||
|
+sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6 |
||||||
|
tmake_file="${tmake_file} t-crtfm" |
||||||
|
if test "${host_address}" = 64; then |
||||||
|
tmake_file="$tmake_file sparc/t-linux64" |
||||||
|
@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd* |
||||||
|
tmake_file="$tmake_file t-crtfm" |
||||||
|
extra_parts="$extra_parts crtfastmath.o" |
||||||
|
;; |
||||||
|
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux |
||||||
|
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux |
||||||
|
extra_parts="$extra_parts crtfastmath.o" |
||||||
|
tmake_file="${tmake_file} t-crtfm sparc/t-linux" |
||||||
|
if test "${host_address}" = 64; then |
@ -0,0 +1,500 @@ |
|||||||
|
From 3439b79cb7f97464d65316a94d40d49505fb2150 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Marek Polacek <polacek@redhat.com> |
||||||
|
Date: Wed, 6 Dec 2023 15:34:24 -0500 |
||||||
|
Subject: [PATCH] aarch64: add -fno-stack-protector to tests |
||||||
|
|
||||||
|
These tests fail when the testsuite is executed with -fstack-protector-strong. |
||||||
|
To avoid this, this patch adds -fno-stack-protector to dg-options. |
||||||
|
|
||||||
|
The list of FAILs is appended. As you can see, it's mostly about |
||||||
|
scan-assembler-* which are sort of expected to fail with the stack |
||||||
|
protector on. |
||||||
|
|
||||||
|
FAIL: gcc.target/aarch64/ldp_stp_unaligned_2.c scan-assembler-not mov\\tx[0-9]+, sp |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_5.c scan-assembler-times stp\\\\tx29, x30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_5.c scan-assembler ldr\\\\tx29, \\\\[sp\\\\] |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_6.c scan-assembler-times str\\\\tx30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_7.c scan-assembler-times stp\\\\tx19, x30, \\\\[sp, -[0-9]+\\\\]! 1 |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_7.c scan-assembler ldr\\\\tx19, \\\\[sp\\\\], [0-9]+ |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_8.c scan-assembler-times stp\\\\tx19, x20, \\\\[sp, -[0-9]+\\\\]! 1 |
||||||
|
FAIL: gcc.target/aarch64/shadow_call_stack_8.c scan-assembler ldp\\\\tx19, x20, \\\\[sp\\\\], [0-9]+ |
||||||
|
FAIL: gcc.target/aarch64/stack-check-12.c scan-assembler-times str\\\\txzr, 2 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-11.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-12.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-13.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-13.c scan-assembler-times str\\\\s+x30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-14.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-14.c scan-assembler-times str\\\\s+x30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-15.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-15.c scan-assembler-times str\\\\s+x30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-17.c check-function-bodies test1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-17.c check-function-bodies test2 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-18.c check-function-bodies test1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-18.c check-function-bodies test2 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-18.c check-function-bodies test3 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-19.c check-function-bodies test1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-19.c check-function-bodies test2 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-19.c check-function-bodies test3 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-2.c scan-assembler-times str\\\\s+xzr, 0 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-5.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-6.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-8.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 2 |
||||||
|
FAIL: gcc.target/aarch64/stack-check-prologue-9.c scan-assembler-times str\\\\s+xzr, \\\\[sp, 1024\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_1.c scan-assembler-times str\\tx30, \\\\[sp, -[0-9]+\\\\]! 2 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_10.c scan-assembler-times stp\\tx19, x30, \\\\[sp, [0-9]+\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_10.c scan-assembler ldp\\tx19, x30, \\\\[sp, [0-9]+\\\\] |
||||||
|
FAIL: gcc.target/aarch64/test_frame_11.c scan-assembler-times stp\\tx29, x30, \\\\[sp, -[0-9]+\\\\]! 2 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_13.c scan-assembler-times stp\\tx29, x30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_15.c scan-assembler-times stp\\tx29, x30, \\\\[sp, [0-9]+\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_2.c scan-assembler-times stp\\tx19, x30, \\\\[sp, -[0-9]+\\\\]! 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_2.c scan-assembler ldp\\tx19, x30, \\\\[sp\\\\], [0-9]+ |
||||||
|
FAIL: gcc.target/aarch64/test_frame_4.c scan-assembler-times stp\\tx19, x30, \\\\[sp, -[0-9]+\\\\]! 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_4.c scan-assembler ldp\\tx19, x30, \\\\[sp\\\\], [0-9]+ |
||||||
|
FAIL: gcc.target/aarch64/test_frame_6.c scan-assembler-times str\\tx30, \\\\[sp\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_7.c scan-assembler-times stp\\tx19, x30, \\\\[sp] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_8.c scan-assembler-times str\\tx30, \\\\[sp, [0-9]+\\\\] 1 |
||||||
|
FAIL: gcc.target/aarch64/test_frame_8.c scan-assembler ldr\\tx30, \\\\[sp, [0-9]+\\\\] |
||||||
|
FAIL: gcc.target/aarch64/sve/struct_vect_24.c scan-assembler-times cmp\\\\s+x[0-9]+, 61440 4 |
||||||
|
FAIL: gcc.target/aarch64/sve/struct_vect_24.c scan-assembler-times sub\\\\s+x[0-9]+, x[0-9]+, 61440 4 |
||||||
|
FAIL: gcc.target/aarch64/sve/struct_vect_24.c scan-assembler-times cmp\\s+x[0-9]+, 61440 4 |
||||||
|
FAIL: gcc.target/aarch64/sve/struct_vect_24.c scan-assembler-times sub\\s+x[0-9]+, x[0-9]+, 61440 4 |
||||||
|
|
||||||
|
gcc/testsuite/ChangeLog: |
||||||
|
|
||||||
|
* gcc.target/aarch64/ldp_stp_unaligned_2.c: Use -fno-stack-protector. |
||||||
|
* gcc.target/aarch64/shadow_call_stack_5.c: Likewise. |
||||||
|
* gcc.target/aarch64/shadow_call_stack_6.c: Likewise. |
||||||
|
* gcc.target/aarch64/shadow_call_stack_7.c: Likewise. |
||||||
|
* gcc.target/aarch64/shadow_call_stack_8.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-12.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-11.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-12.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-13.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-14.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-15.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-17.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-18.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-19.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-2.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-5.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-6.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-8.c: Likewise. |
||||||
|
* gcc.target/aarch64/stack-check-prologue-9.c: Likewise. |
||||||
|
* gcc.target/aarch64/sve/struct_vect_24.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_1.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_10.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_11.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_13.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_15.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_2.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_4.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_6.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_7.c: Likewise. |
||||||
|
* gcc.target/aarch64/test_frame_8.c: Likewise. |
||||||
|
--- |
||||||
|
gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-12.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c | 4 ++-- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c | 4 ++-- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_1.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_10.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_11.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_13.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_15.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_2.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_4.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_6.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_7.c | 2 +- |
||||||
|
gcc/testsuite/gcc.target/aarch64/test_frame_8.c | 2 +- |
||||||
|
30 files changed, 32 insertions(+), 32 deletions(-) |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c b/gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c |
||||||
|
index 1e46755a39a..50d7d7a2d5d 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c |
||||||
|
@@ -1,4 +1,4 @@ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer -fno-stack-protector" } */ |
||||||
|
|
||||||
|
/* Check that we split unaligned LDP/STP into base and aligned offset. */ |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c |
||||||
|
index d88357ca04d..d7f82984ff5 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c |
||||||
|
@@ -7,7 +7,7 @@ |
||||||
|
* optimized code should use "ldr x29, [sp]" to restore x29 only. */ |
||||||
|
|
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fno-omit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fno-omit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c |
||||||
|
index 83b74834c6a..8d088aecc20 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c |
||||||
|
@@ -7,7 +7,7 @@ |
||||||
|
* optimized code should not restore x30 in epilogue. */ |
||||||
|
|
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c |
||||||
|
index 5537fb3293a..a2f376e0091 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c |
||||||
|
@@ -7,7 +7,7 @@ |
||||||
|
* optimized code should use "ldr x19, [sp], x" to restore x19 only. */ |
||||||
|
|
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c |
||||||
|
index b03f26f7bcf..5162cbb3917 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c |
||||||
|
@@ -9,7 +9,7 @@ |
||||||
|
* optimized code should not restore x30 in epilogue. */ |
||||||
|
|
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O0 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps" } */ |
||||||
|
+/* { dg-options "-O0 -fomit-frame-pointer -fsanitize=shadow-call-stack -fno-exceptions -ffixed-x18 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
int func1 (void) |
||||||
|
{ |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-12.c b/gcc/testsuite/gcc.target/aarch64/stack-check-12.c |
||||||
|
index be5a57a9ec6..e1a4c67b041 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-12.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-12.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-asynchronous-unwind-tables -fno-unwind-tables" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
typedef unsigned __attribute__((mode(DI))) uint64_t; |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c |
||||||
|
index 741f2f5fadc..d57aece05bb 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE (6 * 64 * 1024) + (1 * 32 * 1024) |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c |
||||||
|
index ece68003ade..895d130e4fa 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
void |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c |
||||||
|
index 0fc900c6943..1f1a6c497be 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
void h (void) __attribute__ ((noreturn)); |
||||||
|
@@ -17,4 +17,4 @@ f (void) |
||||||
|
|
||||||
|
/* SIZE is more than 1 guard-size, but only one 64KB page is used, expect only 1 |
||||||
|
probe. Leaf function and omitting leaf pointers, tail call to noreturn which |
||||||
|
- may only omit an epilogue and not a prologue. Checking for LR saving. */ |
||||||
|
\ No newline at end of file |
||||||
|
+ may only omit an epilogue and not a prologue. Checking for LR saving. */ |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c |
||||||
|
index ea733f861e7..facb3cb72a7 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
void h (void) __attribute__ ((noreturn)); |
||||||
|
@@ -21,4 +21,4 @@ f (void) |
||||||
|
probe at 1024 and one implicit probe due to LR being saved. Leaf function |
||||||
|
and omitting leaf pointers, tail call to noreturn which may only omit an |
||||||
|
epilogue and not a prologue and control flow in between. Checking for |
||||||
|
- LR saving. */ |
||||||
|
\ No newline at end of file |
||||||
|
+ LR saving. */ |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c |
||||||
|
index 63df4a5609a..f2ac60a6214 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fomit-frame-pointer -momit-leaf-frame-pointer -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
void g (volatile int *x) ; |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c |
||||||
|
index f0ec1389771..1cf6fbbb085 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c |
||||||
|
@@ -1,4 +1,4 @@ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fno-stack-protector" } */ |
||||||
|
/* { dg-final { check-function-bodies "**" "" } } */ |
||||||
|
|
||||||
|
void f(int, ...); |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c |
||||||
|
index 6383bec5ebc..2e06346c158 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c |
||||||
|
@@ -1,4 +1,4 @@ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fno-stack-protector" } */ |
||||||
|
/* { dg-final { check-function-bodies "**" "" } } */ |
||||||
|
|
||||||
|
void f(int, ...); |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c |
||||||
|
index 562039b5e9b..38eab4d36ab 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c |
||||||
|
@@ -1,4 +1,4 @@ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18 -fno-stack-protector" } */ |
||||||
|
/* { dg-final { check-function-bodies "**" "" } } */ |
||||||
|
|
||||||
|
void f(int, ...); |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c |
||||||
|
index 61c52a251a7..b37f62cad27 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE 2 * 1024 |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c |
||||||
|
index 2ee16350127..34a438671d0 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE 64 * 1024 |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c |
||||||
|
index 3c9b606cbe0..a4e34e2fe6a 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE 65 * 1024 |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c |
||||||
|
index 333f5fcc360..277dce4c71e 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE 128 * 1024 |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c |
||||||
|
index a3ff89b5581..a21305541c1 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c |
||||||
|
@@ -1,5 +1,5 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
|
||||||
|
#define SIZE 6 * 64 * 1024 |
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c b/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c |
||||||
|
index 68a9d5e3d2e..19be6de0c2e 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c |
||||||
|
@@ -1,6 +1,6 @@ |
||||||
|
/* { dg-do compile } */ |
||||||
|
/* { dg-require-effective-target supports_stack_clash_protection } */ |
||||||
|
-/* { dg-options "-O3 -fopenmp-simd -fstack-clash-protection --param stack-clash-protection-guard-size=16" } */ |
||||||
|
+/* { dg-options "-O3 -fopenmp-simd -fstack-clash-protection --param stack-clash-protection-guard-size=16 -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include <stdint.h> |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_1.c b/gcc/testsuite/gcc.target/aarch64/test_frame_1.c |
||||||
|
index f906b073545..c9b8822b4b1 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_1.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_1.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* optimized code should use "str !" for stack adjustment. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_10.c b/gcc/testsuite/gcc.target/aarch64/test_frame_10.c |
||||||
|
index c54ab2d0ccb..fe5cbd9ed05 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_10.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_10.c |
||||||
|
@@ -7,7 +7,7 @@ |
||||||
|
* Use a single stack adjustment, no writeback. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_11.c b/gcc/testsuite/gcc.target/aarch64/test_frame_11.c |
||||||
|
index f162cc091e0..11cf471168d 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_11.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_11.c |
||||||
|
@@ -5,7 +5,7 @@ |
||||||
|
* optimized code should use "stp !" for stack adjustment. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_13.c b/gcc/testsuite/gcc.target/aarch64/test_frame_13.c |
||||||
|
index 74b3370fa46..ec56963c038 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_13.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_13.c |
||||||
|
@@ -5,7 +5,7 @@ |
||||||
|
* Use a single stack adjustment, no writeback. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_15.c b/gcc/testsuite/gcc.target/aarch64/test_frame_15.c |
||||||
|
index bed6714b4fe..4247008de8e 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_15.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_15.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* Use a single stack adjustment, no writeback. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_2.c b/gcc/testsuite/gcc.target/aarch64/test_frame_2.c |
||||||
|
index 0d715314cb8..9c4243b6480 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_2.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_2.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* optimized code should use "stp !" for stack adjustment. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_4.c b/gcc/testsuite/gcc.target/aarch64/test_frame_4.c |
||||||
|
index b41229c42f4..8d0bed93e44 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_4.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_4.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* we can use "stp !" to optimize stack adjustment. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_6.c b/gcc/testsuite/gcc.target/aarch64/test_frame_6.c |
||||||
|
index 56259c945d2..2944a8bbe16 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_6.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_6.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* use a single stack adjustment, no writeback. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_7.c b/gcc/testsuite/gcc.target/aarch64/test_frame_7.c |
||||||
|
index 5702656a5da..ca371632d81 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_7.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_7.c |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* use a single stack adjustment, no writeback. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_8.c b/gcc/testsuite/gcc.target/aarch64/test_frame_8.c |
||||||
|
index 75a68b41e08..084e8fac373 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_8.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_8.c |
||||||
|
@@ -5,7 +5,7 @@ |
||||||
|
* number of callee-saved reg == 1. */ |
||||||
|
|
||||||
|
/* { dg-do run } */ |
||||||
|
-/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ |
||||||
|
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-stack-protector" } */ |
||||||
|
|
||||||
|
#include "test_frame_common.h" |
||||||
|
|
||||||
|
|
||||||
|
base-commit: 1bd15d87031e8bf8fe9585fbc166b315303f676c |
||||||
|
-- |
||||||
|
2.43.0 |
||||||
|
|
@ -0,0 +1,50 @@ |
|||||||
|
commit b6532d0edd50a6086a84ca748fe49c5a9d28f155 |
||||||
|
Author: Marek Polacek <polacek@redhat.com> |
||||||
|
Date: Wed Jul 5 17:43:31 2023 -0400 |
||||||
|
|
||||||
|
testsuite: fix dwarf2/utf-1.C with DWARF4 |
||||||
|
|
||||||
|
Running |
||||||
|
$ make check-c++ RUNTESTFLAGS='--target_board=unix\{-gdwarf-5,-gdwarf-4\} dwarf2.exp=utf-1.C' |
||||||
|
shows |
||||||
|
FAIL: g++.dg/debug/dwarf2/utf-1.C -std=gnu++20 scan-assembler-times DW_AT_encoding \\(0x10\\) 3 |
||||||
|
because with -gdwarf-4 the output is: |
||||||
|
|
||||||
|
.byte 0x10 # DW_AT_encoding |
||||||
|
|
||||||
|
but with -gdwarf-5 the output is the expected: |
||||||
|
|
||||||
|
# DW_AT_encoding (0x10) |
||||||
|
|
||||||
|
The difference is caused by the DWARF5 optimize_implicit_const |
||||||
|
optimization: |
||||||
|
<https://gcc.gnu.org/pipermail/gcc-patches/2016-October/459762.html> |
||||||
|
|
||||||
|
I suppose we could do what testsuite/rust/debug/chartype.rs does |
||||||
|
and just run the test with -gdwarf-4. |
||||||
|
|
||||||
|
gcc/testsuite/ChangeLog: |
||||||
|
|
||||||
|
* g++.dg/debug/dwarf2/utf-1.C: Use -gdwarf-4. Adjust expected |
||||||
|
output. |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C |
||||||
|
index 43b354f1bb5..0ce4d8727d6 100644 |
||||||
|
--- a/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C |
||||||
|
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C |
||||||
|
@@ -1,8 +1,13 @@ |
||||||
|
// { dg-do compile { target c++20 } } |
||||||
|
-// { dg-options { -gdwarf -dA } } |
||||||
|
+// { dg-options { -gdwarf-4 -dA } } |
||||||
|
|
||||||
|
// Test that all three use DW_ATE_UTF. |
||||||
|
-// { dg-final { scan-assembler-times {DW_AT_encoding \(0x10\)} 3 } } |
||||||
|
+// This test uses -gdwarf-4 since in DWARF5 optimize_implicit_const |
||||||
|
+// would optimize the output from: |
||||||
|
+// .byte 0x10 # DW_AT_encoding |
||||||
|
+// into: |
||||||
|
+// # DW_AT_encoding (0x10) |
||||||
|
+// { dg-final { scan-assembler-times "0x10\[ \t]\[^\n\r]* DW_AT_encoding" 3 } } |
||||||
|
|
||||||
|
char8_t c8; |
||||||
|
char16_t c16; |
@ -0,0 +1,131 @@ |
|||||||
|
commit 38dc1b9145d3b27317a03ace3ab21fb76f6c428a |
||||||
|
Author: Carl Love <cel@us.ibm.com> |
||||||
|
Date: Fri Mar 10 18:16:52 2023 -0500 |
||||||
|
|
||||||
|
rs6000: Fix test int_128bit-runnable.c instruction counts |
||||||
|
|
||||||
|
The test reports two failures on Power 10LE: |
||||||
|
|
||||||
|
FAIL: .../int_128bit-runnable.c scan-assembler-times \\\\mvdivsq\\\\M 1 |
||||||
|
FAIL: .../int_128bit-runnable.c scan-assembler-times \\\\mvextsd2q\\\\M 6 |
||||||
|
|
||||||
|
The current counts are : |
||||||
|
|
||||||
|
vdivsq 3 |
||||||
|
vextsd2q 4 |
||||||
|
|
||||||
|
The counts changed with commit: |
||||||
|
|
||||||
|
commit 852b11da11a181df517c0348df044354ff0656d6 |
||||||
|
Author: Michael Meissner <meissner@linux.ibm.com> |
||||||
|
Date: Wed Jul 7 21:55:38 2021 -0400 |
||||||
|
|
||||||
|
Generate 128-bit int divide/modulus on power10. |
||||||
|
|
||||||
|
This patch adds support for the VDIVSQ, VDIVUQ, VMODSQ, and VMODUQ |
||||||
|
instructions to do 128-bit arithmetic. |
||||||
|
|
||||||
|
2021-07-07 Michael Meissner <meissner@linux.ibm.com> |
||||||
|
|
||||||
|
The code generation changed significantly. There are two places where |
||||||
|
the vextsd2q is "replaced" by a vdivsq instruction thus increasing the |
||||||
|
vdivsq count from 1 to 3. The first case is: |
||||||
|
|
||||||
|
expected_result = vec_arg1[0]/4; |
||||||
|
10000af8: 60 01 df e8 ld r6,352(r31) |
||||||
|
10000afc: 68 01 ff e8 ld r7,360(r31) |
||||||
|
10000b00: 76 fe e9 7c sradi r9,r7,63 |
||||||
|
10000b04: 67 4b 00 7c mtvsrdd vs32,0,r9 |
||||||
|
10000b08: 02 06 1b 10 vextsd2q v0,v0 <---- |
||||||
|
10000b0c: 03 00 40 39 li r10,3 |
||||||
|
10000b10: 00 00 60 39 li r11,0 |
||||||
|
10000b14: 67 00 09 7c mfvrd r9,v0 |
||||||
|
10000b18: 67 02 08 7c mfvsrld r8,vs32 |
||||||
|
10000b1c: 38 50 08 7d and r8,r8,r10 |
||||||
|
10000b20: 38 58 29 7d and r9,r9,r11 |
||||||
|
10000b24: 78 4b 2b 7d mr r11,r9 |
||||||
|
10000b28: 78 43 0a 7d mr r10,r8 |
||||||
|
10000b2c: 14 30 4a 7f addc r26,r10,r6 |
||||||
|
10000b30: 14 39 6b 7f adde r27,r11,r7 |
||||||
|
10000b34: 46 f0 69 7b sldi r9,r27,62 |
||||||
|
10000b38: 82 f0 58 7b srdi r24,r26,2 |
||||||
|
10000b3c: 78 c3 38 7d or r24,r9,r24 |
||||||
|
10000b40: 74 16 79 7f sradi r25,r27,2 |
||||||
|
10000b44: 30 00 1f fb std r24,48(r31) |
||||||
|
10000b48: 38 00 3f fb std r25,56(r31) |
||||||
|
|
||||||
|
To: |
||||||
|
|
||||||
|
expected_result = vec_arg1[0]/4; |
||||||
|
10000af8: 69 01 1f f4 lxv vs32,352(r31) |
||||||
|
10000afc: 04 00 20 39 li r9,4 |
||||||
|
10000b00: 00 00 40 39 li r10,0 |
||||||
|
10000b04: 67 4b 2a 7c mtvsrdd vs33,r10,r9 |
||||||
|
10000b08: 0b 09 00 10 vdivsq v0,v0,v1 <---- |
||||||
|
10000b0c: 3d 00 1f f4 stxv vs32,48(r31) |
||||||
|
|
||||||
|
The second case were a vexts2q instruction is replaced with vdivsq: |
||||||
|
|
||||||
|
From: |
||||||
|
|
||||||
|
expected_result = arg1/16; |
||||||
|
10000c24: 40 00 df e8 ld r6,64(r31) |
||||||
|
10000c28: 48 00 ff e8 ld r7,72(r31) |
||||||
|
10000c2c: 76 fe e9 7c sradi r9,r7,63 |
||||||
|
10000c30: 67 4b 00 7c mtvsrdd vs32,0,r9 |
||||||
|
10000c34: 02 06 1b 10 vextsd2q v0,v0 <--- |
||||||
|
10000c38: 0f 00 40 39 li r10,15 |
||||||
|
10000c3c: 00 00 60 39 li r11,0 |
||||||
|
10000c40: 67 00 09 7c mfvrd r9,v0 |
||||||
|
10000c44: 67 02 08 7c mfvsrld r8,vs32 |
||||||
|
10000c48: 38 50 08 7d and r8,r8,r10 |
||||||
|
10000c4c: 38 58 29 7d and r9,r9,r11 |
||||||
|
10000c50: 78 4b 2b 7d mr r11,r9 |
||||||
|
10000c54: 78 43 0a 7d mr r10,r8 |
||||||
|
10000c58: 14 30 ca 7e addc r22,r10,r6 |
||||||
|
10000c5c: 14 39 eb 7e adde r23,r11,r7 |
||||||
|
10000c60: c6 e0 e9 7a sldi r9,r23,60 |
||||||
|
10000c64: 02 e1 d4 7a srdi r20,r22,4 |
||||||
|
10000c68: 78 a3 34 7d or r20,r9,r20 |
||||||
|
10000c6c: 74 26 f5 7e sradi r21,r23,4 |
||||||
|
10000c70: 30 00 9f fa std r20,48(r31) |
||||||
|
10000c74: 38 00 bf fa std r21,56(r31) |
||||||
|
|
||||||
|
To: |
||||||
|
|
||||||
|
expected_result = arg1/16; |
||||||
|
10000be8: 49 00 1f f4 lxv vs32,64(r31) |
||||||
|
10000bec: 10 00 20 39 li r9,16 |
||||||
|
10000bf0: 00 00 40 39 li r10,0 |
||||||
|
10000bf4: 67 4b 2a 7c mtvsrdd vs33,r10,r9 |
||||||
|
10000bf8: 0b 09 00 10 vdivsq v0,v0,v1 <--- |
||||||
|
10000bfc: 3d 00 1f f4 stxv vs32,48(r31) |
||||||
|
|
||||||
|
The patch has been tested on Power10LE with no regressions. |
||||||
|
|
||||||
|
gcc/testsuite/ |
||||||
|
* gcc.target/powerpc/int_128bit-runnable.c: Update expected |
||||||
|
instruction counts. |
||||||
|
|
||||||
|
diff --git a/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c b/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c |
||||||
|
index 68217c62325..756142d1bc6 100644 |
||||||
|
--- a/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c |
||||||
|
+++ b/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c |
||||||
|
@@ -4,7 +4,7 @@ |
||||||
|
|
||||||
|
/* Check that the expected 128-bit instructions are generated if the processor |
||||||
|
supports the 128-bit integer instructions. */ |
||||||
|
-/* { dg-final { scan-assembler-times {\mvextsd2q\M} 6 } } */ |
||||||
|
+/* { dg-final { scan-assembler-times {\mvextsd2q\M} 4 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvslq\M} 2 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvsrq\M} 2 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvsraq\M} 2 } } */ |
||||||
|
@@ -18,7 +18,7 @@ |
||||||
|
/* { dg-final { scan-assembler-times {\mvmulesd\M} 1 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvmulosd\M} 1 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvmulld\M} 1 } } */ |
||||||
|
-/* { dg-final { scan-assembler-times {\mvdivsq\M} 1 } } */ |
||||||
|
+/* { dg-final { scan-assembler-times {\mvdivsq\M} 3 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvdivuq\M} 1 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvdivesq\M} 1 } } */ |
||||||
|
/* { dg-final { scan-assembler-times {\mvdiveuq\M} 1 } } */ |
Binary file not shown.
@ -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. */ |
||||||
|
|
@ -0,0 +1,188 @@ |
|||||||
|
/* Copyright (C) 2019 Free Software Foundation, Inc. |
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>. |
||||||
|
|
||||||
|
This file is part of the GNU Offloading and Multi Processing Library |
||||||
|
(libgomp). |
||||||
|
|
||||||
|
Libgomp is free software; you can redistribute it and/or modify it |
||||||
|
under the terms of the GNU General Public License as published by |
||||||
|
the Free Software Foundation; either version 3, or (at your option) |
||||||
|
any later version. |
||||||
|
|
||||||
|
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY |
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
||||||
|
more details. |
||||||
|
|
||||||
|
Under Section 7 of GPL version 3, you are granted additional |
||||||
|
permissions described in the GCC Runtime Library Exception, version |
||||||
|
3.1, as published by the Free Software Foundation. |
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License and |
||||||
|
a copy of the GCC Runtime Library Exception along with this program; |
||||||
|
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
||||||
|
<http://www.gnu.org/licenses/>. */ |
||||||
|
|
||||||
|
/* Remapping of nonmonotonic runtime schedule and maybe nonmonotonic runtime |
||||||
|
schedule loop entrypoints (the used by GCC 9 and later for runtime |
||||||
|
schedule without monotonic or nonmonotonic modifiers). |
||||||
|
RHEL 7 libgomp only implements the GOMP*loop*runtime* entrypoints without |
||||||
|
nonmonotonic in the names, which always implement monotonic scheduling, |
||||||
|
but the library doesn't implement any other scheduling, even in GCC 9 |
||||||
|
and monotonic scheduling is a valid implementation of non-monotonic |
||||||
|
scheduling. */ |
||||||
|
|
||||||
|
#include <stdbool.h> |
||||||
|
|
||||||
|
typedef unsigned long long ull; |
||||||
|
extern bool GOMP_loop_runtime_start (long, long, long, long *, long *); |
||||||
|
extern bool GOMP_loop_runtime_next (long *, long *); |
||||||
|
extern void GOMP_parallel_loop_runtime (void (*)(void *), void *, |
||||||
|
unsigned, long, long, long, |
||||||
|
unsigned); |
||||||
|
extern bool GOMP_loop_ull_runtime_start (bool, ull, ull, ull, ull *, ull *); |
||||||
|
extern bool GOMP_loop_ull_runtime_next (ull *, ull *); |
||||||
|
extern bool GOMP_loop_dynamic_next (long *, long *); |
||||||
|
extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *); |
||||||
|
extern bool GOMP_loop_guided_next (long *, long *); |
||||||
|
extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *); |
||||||
|
extern bool GOMP_loop_ull_dynamic_next (ull *, ull *); |
||||||
|
extern bool GOMP_loop_ull_dynamic_start (bool, ull, ull, ull, ull, ull *, |
||||||
|
ull *); |
||||||
|
extern bool GOMP_loop_ull_guided_next (ull *, ull *); |
||||||
|
extern bool GOMP_loop_ull_guided_start (bool, ull, ull, ull, ull, ull *, |
||||||
|
ull *); |
||||||
|
extern void GOMP_parallel_loop_dynamic (void (*)(void *), void *, |
||||||
|
unsigned, long, long, long, long, |
||||||
|
unsigned); |
||||||
|
extern void GOMP_parallel_loop_guided (void (*)(void *), void *, |
||||||
|
unsigned, long, long, long, long, |
||||||
|
unsigned); |
||||||
|
#define alias(x, y) __typeof (x) y __attribute__((alias (#x))) |
||||||
|
|
||||||
|
#pragma GCC visibility push(hidden) |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_runtime_start (long start, long end, long incr, |
||||||
|
long *istart, long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_runtime_start (start, end, incr, istart, iend); |
||||||
|
} |
||||||
|
alias (GOMP_loop_nonmonotonic_runtime_start, |
||||||
|
GOMP_loop_maybe_nonmonotonic_runtime_start); |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_runtime_next (long *istart, long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_runtime_next (istart, iend); |
||||||
|
} |
||||||
|
alias (GOMP_loop_nonmonotonic_runtime_next, |
||||||
|
GOMP_loop_maybe_nonmonotonic_runtime_next); |
||||||
|
|
||||||
|
void |
||||||
|
GOMP_parallel_loop_nonmonotonic_runtime (void (*fn)(void *), void *data, |
||||||
|
unsigned num_threads, long start, |
||||||
|
long end, long incr, unsigned flags) |
||||||
|
{ |
||||||
|
return GOMP_parallel_loop_runtime (fn, data, num_threads, start, |
||||||
|
end, incr, flags); |
||||||
|
} |
||||||
|
alias (GOMP_parallel_loop_nonmonotonic_runtime, |
||||||
|
GOMP_parallel_loop_maybe_nonmonotonic_runtime); |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_runtime_start (bool up, ull start, ull end, |
||||||
|
ull incr, ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_runtime_start (up, start, end, incr, istart, iend); |
||||||
|
} |
||||||
|
alias (GOMP_loop_ull_nonmonotonic_runtime_start, |
||||||
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_start); |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_runtime_next (ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_runtime_next (istart, iend); |
||||||
|
} |
||||||
|
alias (GOMP_loop_ull_nonmonotonic_runtime_next, |
||||||
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_next); |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_dynamic_next (long *istart, long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_dynamic_next (istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_dynamic_start (long start, long end, long incr, |
||||||
|
long chunk_size, long *istart, |
||||||
|
long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_dynamic_start (start, end, incr, chunk_size, istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_guided_next (long *istart, long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_guided_next (istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_nonmonotonic_guided_start (long start, long end, long incr, |
||||||
|
long chunk_size, long *istart, long *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_guided_start (start, end, incr, chunk_size, istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_dynamic_next (ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_dynamic_next (istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_dynamic_start (bool up, ull start, |
||||||
|
ull end, ull incr, |
||||||
|
ull chunk_size, |
||||||
|
ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_dynamic_start (up, start, end, incr, chunk_size, istart, |
||||||
|
iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_guided_next (ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_guided_next (istart, iend); |
||||||
|
} |
||||||
|
|
||||||
|
bool |
||||||
|
GOMP_loop_ull_nonmonotonic_guided_start (bool up, ull start, ull end, |
||||||
|
ull incr, ull chunk_size, |
||||||
|
ull *istart, ull *iend) |
||||||
|
{ |
||||||
|
return GOMP_loop_ull_guided_start (up, start, end, incr, chunk_size, istart, |
||||||
|
iend); |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
GOMP_parallel_loop_nonmonotonic_dynamic (void (*fn) (void *), void *data, |
||||||
|
unsigned num_threads, long start, |
||||||
|
long end, long incr, long chunk_size, |
||||||
|
unsigned flags) |
||||||
|
{ |
||||||
|
GOMP_parallel_loop_dynamic (fn, data, num_threads, start, end, incr, |
||||||
|
chunk_size, flags); |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
GOMP_parallel_loop_nonmonotonic_guided (void (*fn) (void *), void *data, |
||||||
|
unsigned num_threads, long start, |
||||||
|
long end, long incr, long chunk_size, |
||||||
|
unsigned flags) |
||||||
|
{ |
||||||
|
GOMP_parallel_loop_guided (fn, data, num_threads, start, end, incr, |
||||||
|
chunk_size, flags); |
||||||
|
} |
||||||
|
|
||||||
|
#pragma GCC visibility pop |
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue