[testsuite, rfa] Add gthreads dependency to some failing libstdc++ tests
Jonathan Wakely
jwakely@redhat.com
Thu Jan 24 20:20:00 GMT 2019
On 24/01/19 11:53 -0700, Sandra Loosemore wrote:
>On 1/24/19 3:46 AM, Jonathan Wakely wrote:
>>On 23/01/19 12:50 -0700, Sandra Loosemore wrote:
>>>I ran libstdc++ tests on nios2-elf target. I observed several new
>>>tests failing with
>>>
>>>error: 'mutex' in namespace 'std' does not name a type
>>>
>>>The definition of class mutex in include/bits/std_mutex.h is
>>>guarded with "#ifdef _GLIBCXX_HAS_GTHREADS" so I assume these
>>>tests are not supposed to work on this target. This patch adds
>>>the equivalent dependency to the failing tests.
>>
>>Those features *should* work without threads (if you don't have
>>multiple threads, they don't need any synchronisation), but currently
>>they use mutexes unconditionally.
>>
>>The proper fix is to make them work without gthreads, something like
>>https://gcc.gnu.org/ml/libstdc++/2018-12/msg00010.html
>>
>>>OK to commit? (I guess it is possible that this is actually a bug
>>>in the code instead, and the tests are supposed to pass....)
>>
>>I'd prefer to XFAIL them, so that we remember to un-XFAIL them if/when
>>I make them stop using mutexes. But we don't have a gthreads
>>effective-target that would allow that, only the dg-require-gthreads
>>directive.
>>
>>Also this patch will skip the tests on AIX, which could run these
>>tests if we added -pthread to the dg-options.
>>
>>But these features are half-baked and experimental, and not going to
>>get more changes in time for GCC 9, so OK for trunk.
>
>Well, if this testsuite patch would indeed be papering over a bug, I
>think it's probably a bad idea to commit it. For purposes of
>nios2-elf testing I can just track these as known failures for now,
>and not worry about them.
If that's OK with you (and David can live with the same situation on
AIX for a bit longer) then I'd prefer to leave them FAILing.
>BTW, I'm more worried about the link errors introduced by the patch
>for PR 86756. Those are regressions and apparently a problem that
>could affect user code, not just broken test cases for half-baked new
>features.
If I understand correctly(*) it can only affect user code that uses
the std::filesystem library, which was new in GCC 8.1, and if those
tests are failing for nios2-elf then it was never usable anyway. The
tests run by default now, but previously they were only run if gcc was
configured with --enable-libstdcxx-filesystem-ts, so this isn't really
a regression in what users can do with the library. I agree they're
more important than the experimental/net/ tests though.
(*) only a few of the 27_io/filesystem/path tests are showing these
linker errors, right? Or are tests outside 27_io/filesystem also
affected?
More information about the Libstdc++
mailing list