This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [PATCH v2] libstdc++: Make certain exceptions transaction_safe.
- From: Dominique d'Humières <dominiq at lps dot ens dot fr>
- To: Jonathan Wakely <jwakely at redhat dot com>
- Cc: Torvald Riegel <triegel at redhat dot com>, libstdc++ at gcc dot gnu dot org, gcc-patches <gcc-patches at gcc dot gnu dot org>, Jack Howarth <howarth at bromo dot med dot uc dot edu>
- Date: Thu, 21 Jan 2016 11:00:08 +0100
- Subject: Re: [PATCH v2] libstdc++: Make certain exceptions transaction_safe.
- Authentication-results: sourceware.org; auth=none
- References: <1EF9008F-5418-4A35-AA1F-9931E464B0AA at lps dot ens dot fr> <1453230646 dot 23593 dot 13 dot camel at localhost dot localdomain> <20160119192001 dot GK15084 at redhat dot com>
Torvald,
Now that I can bootstrap on darwin, I have found the following failure for libitm.c++/libstdc++-safeexc.C
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::underflow_error::underflow_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::overflow_error::overflow_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::range_error::range_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::runtime_error::runtime_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::out_of_range::out_of_range(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::length_error::length_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::invalid_argument::invalid_argument(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::domain_error::domain_error(const string&)' within atomic transaction
throw T (what);
^~~~~
/opt/gcc/work/libitm/testsuite/libitm.c++/libstdc++-safeexc.C:50:2: error: unsafe function call 'std::logic_error::logic_error(const string&)' within atomic transaction
throw T (what);
^~~~~
TIA
Dominique
> Le 19 janv. 2016 à 20:20, Jonathan Wakely <jwakely@redhat.com> a écrit :
>
> On 19/01/16 20:10 +0100, Torvald Riegel wrote:
>> On Sat, 2016-01-16 at 10:57 +0100, Dominique d'Humières wrote:
>>> > Addressed these, fixed a problem with using GLIBCXX_WEAK_DEFINITION
>>> > (which is only set on Darwin despite the generic-sounding name -- so
>>> > just use __attribute__((weak)) directly), and also updated
>>> > testsuite_abi.cc so that it knows about CXXABI_1.3.10.
>>> >
>>> > Approved by Jonathan Wakely. Committed as r232454.
>>> This breaks bootstrap on darwin, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69310.
>>
>> Please give this patch a try. I've only tested it on x86_64-linux.
>> Jon, okay from your side if Darwin testing succeeds?
>
> Yes, OK.