On Jan 30, 2024, at 23:03, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We appreciate that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
We track this report status in https://linaro.atlassian.net/browse/GNU-1136 , please let us know if you are looking at the problem and/or when you have a fix.
In master-arm after:
| commit gdb-14-branchpoint-1411-g033bc67bdb0 | Author: Tom Tromey tom@tromey.com | Date: Tue Sep 19 17:39:31 2023 -0600 | | Only search types in cp_lookup_rtti_type | | This changes cp_lookup_rtti_type to only search for types -- not | functions or variables. Due to the symbol-matching hack, this could | just use SEARCH_TYPE_DOMAIN, but I think it's better to be clear; also | I hold on to some hope that perhaps the hack can someday be removed.
FAIL: 2 regressions
regressions.sum: === libstdc++ tests ===
Running libstdc++:libstdc++-prettyprinters/prettyprinters.exp ... FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow
Hi Tom, Hi Jonathan,
After the above GDB patch I see 2 new failures both for aarch64-linux-gnu and arm-linux-gnueabihf in GCC's libstdc++ testsuite. The log [1] says: === $35 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $35 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow skipping: warning: RTTI symbol not found for class 'main::custom_cat' std::error_code = {std::_V2::error_category: 42} skipping: std::error_code = {std::_V2::error_category: 42} $36 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $36 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow ===
Which way should I dig -- GDB or libstdc++? Does this look like libstdc++ testcase needs an update?
[1] https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-aarch64-build/la...
Thanks!
-- Maxim Kuvyrkov https://www.linaro.org
You can find the failure logs in *.log.1.xz files in
The full lists of regressions and progressions as well as configure and make commands are in
The list of [ignored] baseline and flaky failures are in
The configuration of this build is: CI config tcwg_gnu_native_check_gcc master-arm
-----------------8<--------------------------8<--------------------------8<-------------------------- The information below can be used to reproduce a debug environment:
Current build : https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/987/ar... Reference build : https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/986/ar...
Reproduce last good and first bad builds: https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gdb/sha...
Full commit : https://sourceware.org/git/?p=binutils-gdb.git%3Ba=commitdiff%3Bh=033bc67bdb...
List of configurations that regressed due to this commit :
- tcwg_gnu_native_check_gcc
** master-arm *** FAIL: 2 regressions *** https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gdb/sha... *** https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/987/ar...
On Mon, 11 Mar 2024 at 16:38, Maxim Kuvyrkov maxim.kuvyrkov@linaro.org wrote:
On Jan 30, 2024, at 23:03, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We appreciate that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
We track this report status in https://linaro.atlassian.net/browse/GNU-1136 , please let us know if you are looking at the problem and/or when you have a fix.
In master-arm after:
| commit gdb-14-branchpoint-1411-g033bc67bdb0 | Author: Tom Tromey tom@tromey.com | Date: Tue Sep 19 17:39:31 2023 -0600 | | Only search types in cp_lookup_rtti_type | | This changes cp_lookup_rtti_type to only search for types -- not | functions or variables. Due to the symbol-matching hack, this could | just use SEARCH_TYPE_DOMAIN, but I think it's better to be clear; also | I hold on to some hope that perhaps the hack can someday be removed.
FAIL: 2 regressions
regressions.sum: === libstdc++ tests ===
Running libstdc++:libstdc++-prettyprinters/prettyprinters.exp ... FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow
Hi Tom, Hi Jonathan,
After the above GDB patch I see 2 new failures both for aarch64-linux-gnu and arm-linux-gnueabihf in GCC's libstdc++ testsuite. The log [1] says:
$35 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $35 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow skipping: warning: RTTI symbol not found for class 'main::custom_cat' std::error_code = {std::_V2::error_category: 42} skipping: std::error_code = {std::_V2::error_category: 42} $36 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $36 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow ===
Which way should I dig -- GDB or libstdc++? Does this look like libstdc++ testcase needs an update?
Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category { + const char* name() const noexcept { return "miaow"; } + std::string message(int) const { return ""; } +}; + int main() { @@ -179,10 +184,7 @@ main() std::error_condition ecinval = std::make_error_condition(std::errc::invalid_argument); // { dg-final { note-test ecinval {std::error_condition = {"generic": EINVAL}} } }
- struct custom_cat : std::error_category { - const char* name() const noexcept { return "miaow"; } - std::string message(int) const { return ""; } - } cat; + custom_cat cat; std::error_code emiaow(42, cat); // { dg-final { note-test emiaow {std::error_code = {custom_cat: 42}} } } std::error_condition ecmiaow(42, cat);
If this works, I think this change to the test is reasonable. A local type as an error_category probably doesn't make sense in real code.
But I don't know if this is revealing some issue with Tom's patch and how it handles local types (or any types without linkage).
[1] https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-aarch64-build/la...
Thanks!
-- Maxim Kuvyrkov https://www.linaro.org
You can find the failure logs in *.log.1.xz files in
The full lists of regressions and progressions as well as configure and make commands are in
The list of [ignored] baseline and flaky failures are in
The configuration of this build is: CI config tcwg_gnu_native_check_gcc master-arm
-----------------8<--------------------------8<--------------------------8<-------------------------- The information below can be used to reproduce a debug environment:
Current build : https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/987/ar... Reference build : https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/986/ar...
Reproduce last good and first bad builds: https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gdb/sha...
Full commit : https://sourceware.org/git/?p=binutils-gdb.git%3Ba=commitdiff%3Bh=033bc67bdb...
List of configurations that regressed due to this commit :
- tcwg_gnu_native_check_gcc
** master-arm *** FAIL: 2 regressions *** https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gdb/sha... *** https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-arm-build/987/ar...
On Mar 11, 2024, at 20:52, Jonathan Wakely jwakely@redhat.com wrote:
On Mon, 11 Mar 2024 at 16:38, Maxim Kuvyrkov maxim.kuvyrkov@linaro.org wrote:
On Jan 30, 2024, at 23:03, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We appreciate that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
We track this report status in https://linaro.atlassian.net/browse/GNU-1136 , please let us know if you are looking at the problem and/or when you have a fix.
In master-arm after:
| commit gdb-14-branchpoint-1411-g033bc67bdb0 | Author: Tom Tromey tom@tromey.com | Date: Tue Sep 19 17:39:31 2023 -0600 | | Only search types in cp_lookup_rtti_type | | This changes cp_lookup_rtti_type to only search for types -- not | functions or variables. Due to the symbol-matching hack, this could | just use SEARCH_TYPE_DOMAIN, but I think it's better to be clear; also | I hold on to some hope that perhaps the hack can someday be removed.
FAIL: 2 regressions
regressions.sum: === libstdc++ tests ===
Running libstdc++:libstdc++-prettyprinters/prettyprinters.exp ... FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow
Hi Tom, Hi Jonathan,
After the above GDB patch I see 2 new failures both for aarch64-linux-gnu and arm-linux-gnueabihf in GCC's libstdc++ testsuite. The log [1] says:
$35 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $35 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print emiaow skipping: warning: RTTI symbol not found for class 'main::custom_cat' std::error_code = {std::_V2::error_category: 42} skipping: std::error_code = {std::_V2::error_category: 42} $36 = warning: RTTI symbol not found for class 'main::custom_cat' warning: RTTI symbol not found for class 'main::custom_cat' got: $36 = warning: RTTI symbol not found for class 'main::custom_cat' FAIL: libstdc++-prettyprinters/cxx11.cc print ecmiaow ===
Which way should I dig -- GDB or libstdc++? Does this look like libstdc++ testcase needs an update?
Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
+};
int main() { @@ -179,10 +184,7 @@ main() std::error_condition ecinval = std::make_error_condition(std::errc::invalid_argument); // { dg-final { note-test ecinval {std::error_condition = {"generic": EINVAL}} } }
- struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
- } cat;
- custom_cat cat;
std::error_code emiaow(42, cat); // { dg-final { note-test emiaow {std::error_code = {custom_cat: 42}} } } std::error_condition ecmiaow(42, cat);
If this works, I think this change to the test is reasonable. A local type as an error_category probably doesn't make sense in real code.
But I don't know if this is revealing some issue with Tom's patch and how it handles local types (or any types without linkage).
Hi Jonathan,
Your above change to cxx11.cc http://cxx11.cc/ fixes the failures [1]. Would you please commit it?
Thanks!
[1] https://ci.linaro.org/job/tcwg_gnu_native_check_gcc--master-aarch64-precommi...
-- Maxim Kuvyrkov https://www.linaro.org
Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
+};
gdb doesn't generally handle local types well -- a longstanding bug nobody has tried to fix.
However my patch wasn't intended to introduce this problem. Perhaps it is at fault.
Tom
On Wed, 13 Mar 2024 at 20:53, Tom Tromey wrote:
Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
+};
gdb doesn't generally handle local types well -- a longstanding bug nobody has tried to fix.
However my patch wasn't intended to introduce this problem. Perhaps it is at fault.
I've pushed the workaround to trunk now anyway, as r14-9457-ga8c7c3a40953e3
I haven't backported it yet.
linaro-toolchain@lists.linaro.org