On 22 September 2016 at 13:15, Jonathan Wakely <jwak...@redhat.com> wrote:
> On 22/09/16 11:16 +0100, Jonathan Wakely wrote:
>>
>> (Somebody should fix PR58938 so exception_ptr is portable).
>
>
> Christophe, would you be able to test this patch?
>
> It uses a single global mutex for exception_ptr objects, which doesn't
> scale well but that probably isn't a problem for processors without
> lock-free atomics for single words.
>
> This also solves the problem of mismatched -march options, where the
> header is compiled for a CPU that supports the atomics but
> libstdc++.so was built for an older CPU that doesn't support them, and
> linking fails (as in https://gcc.gnu.org/PR58938#c13).
>
>
Hi Jonathan,

This is not quite right.
In most cases, it moves
18_support/exception_ptr/requirements_neg.cc  (test for errors, line 30)
to line 27 (not sure why, since you removed 1 line only)

but on older arm architectures, the tests you updated fail to compile:
  18_support/exception_ptr/40296.cc (test for excess errors)
  18_support/exception_ptr/60612-terminate.cc (test for excess errors)
  18_support/exception_ptr/60612-unexpected.cc (test for excess errors)
  18_support/exception_ptr/62258.cc (test for excess errors)
  18_support/exception_ptr/64241.cc (test for excess errors)
  18_support/exception_ptr/current_exception.cc (test for excess errors)
  18_support/exception_ptr/lifespan.cc (test for excess errors)
  18_support/exception_ptr/make_exception_ptr.cc (test for excess errors)
  18_support/exception_ptr/move.cc (test for excess errors)
  18_support/exception_ptr/requirements.cc (test for excess errors)
  18_support/exception_ptr/requirements_neg.cc  (test for errors, line 27)
  18_support/exception_ptr/requirements_neg.cc  (test for errors, line 28)
  18_support/exception_ptr/requirements_neg.cc  (test for errors, line 29)
  18_support/exception_ptr/requirements_neg.cc (test for excess errors)
  18_support/exception_ptr/rethrow_exception.cc (test for excess errors)

For instance:
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:
In function 'bool test01()':
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:25:
error: 'exception_ptr' is not a member of 'std'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:25:
note: suggested alternative: 'fexcept_t'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:27:
error: 'p' was not declared in this scope

/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:
In function 'void f()':
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34:
error: 'rethrow_exception' is not a member of 'std'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34:
note: suggested alternative: '__exception'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34:
error: 'current_exception' is not a member of 'std'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34:
note: suggested alternative: '_ZTISt9exception'

For more details:
http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/240339-pr58938-v2/report-build-info.html

Thanks,

Christophe

Reply via email to