Mike Stump <mikest...@comcast.net> writes:

> On Feb 6, 2017, at 3:33 AM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote:
>> 
>> Hi Gerald,
>> 
>>> Copying the two guys listed as testsuite maintainers in gcc/MAINTAINERS
>>> may help; let me do that for you.
>>> 
>>> That said, if this fails to fail, the patch might be considered obvious,
>>> not requiring a approval?
>> 
>> it's not: while it may XPASS with newer glibc versions, it still XFAILs
>> e.g. on Solaris (and probably others).  So unconditionally removing the
>> xfail *-*-* trades an XPASS->PASS on some Linux versions against a
>> XFAIL->FAIL elsewhere, which isn't acceptable.
>
> So, if it passes most everywhere, then I think the systems where it fails
> need to be identified and listed.
>
> Are there any solaris systems where it works?

No, and judging from the comment in the test

// that isn't reverse order of construction.  We need to move
// __cxa_thread_atexit into glibc to get this right.

that's no wonder...

> Systems like darwin and freebsd and aix seem to suggest that things should
> generally work; which means that the problem is likely just specific
> implementations of specific software.
>
> Anyone know of any other systems where it fails?
>
> I'll copy Jason to see if he recalls any systems where this might still fail.
>
> Anyway, I'd recommend just xfailing on solaris, and getting on with life.
> Other systems that fail, will trivially add themselves, or identify a way
> to xfail or otherwise mark as unsupported or add a new requirement if they
> prefer.  Any objections?

No.  In fact, I'd go for something like this:

2017-02-07  Dominik Vogt  <v...@linux.vnet.ibm.com>
            Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        * g++.dg/tls/thread_local-order2.C: Only xfail execution on
        *-*-solaris*.

# HG changeset patch
# Parent  031bb7a327cc984d387a8ae64e7c65d4b8793731
Only xfail g++.dg/tls/thread_local-order2.C on Solaris

diff --git a/gcc/testsuite/g++.dg/tls/thread_local-order2.C b/gcc/testsuite/g++.dg/tls/thread_local-order2.C
--- a/gcc/testsuite/g++.dg/tls/thread_local-order2.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local-order2.C
@@ -2,10 +2,11 @@
 // that isn't reverse order of construction.  We need to move
 // __cxa_thread_atexit into glibc to get this right.
 
-// { dg-do run { xfail *-*-* } }
+// { dg-do run }
 // { dg-require-effective-target c++11 }
 // { dg-add-options tls }
 // { dg-require-effective-target tls_runtime }
+// { dg-xfail-run-if "" { *-*-solaris* } }
 
 extern "C" void abort();
 extern "C" int printf (const char *, ...);
This way one can easily add per-target PR references or explanations,
e.g. for darwin10 or others should they come up.

Tested on i386-pc-solaris2.12 and x86_64-pc-linux-gnu.  Ok for mainline?

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to