Patchwork [alpha] : Skip some TLS -pie tests

login
register
mail settings
Submitter Uros Bizjak
Date June 22, 2011, 11:18 a.m.
Message ID <BANLkTin5L2RsfYNOfKK7kiY3sgZOdAMiFA@mail.gmail.com>
Download mbox | patch
Permalink /patch/101435/
State New
Headers show

Comments

Uros Bizjak - June 22, 2011, 11:18 a.m.
Hello!

Some -pie TLS tests are unsupported due to "TLS local exec code cannot
be linked into shared objects".

2011-06-22  Uros Bizjak  <ubizjak@gmail.com>

	* gcc.dg/torture/tls/run-le.c: Skip for -pie on alpha*-*-linux*.
	* gcc.dg/torture/tls/tls-test.c: Ditto.
	* gcc.dg/torture/tls/thr-init-1.c: Ditto.
	* gcc.dg/torture/tls/thr-init-2.c: Ditto.

Tested on alphaev68-pc-linux-gnu, committed to mainline SVN.

Uros.
Joseph S. Myers - June 22, 2011, 1:04 p.m.
On Wed, 22 Jun 2011, Uros Bizjak wrote:

> Hello!
> 
> Some -pie TLS tests are unsupported due to "TLS local exec code cannot
> be linked into shared objects".

Is there something about the Alpha ABI that makes it impossible to support 
for PIEs (which are different from shared libraries)?  The conclusion for 
ARM was that this was a linker bug 
<http://sourceware.org/ml/binutils/2011-06/msg00204.html>.
Uros Bizjak - June 22, 2011, 3:32 p.m.
On Wed, Jun 22, 2011 at 3:04 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:

>> Some -pie TLS tests are unsupported due to "TLS local exec code cannot
>> be linked into shared objects".
>
> Is there something about the Alpha ABI that makes it impossible to support
> for PIEs (which are different from shared libraries)?  The conclusion for
> ARM was that this was a linker bug
> <http://sourceware.org/ml/binutils/2011-06/msg00204.html>.

Let's ask rth about this...

Uros.
Richard Henderson - June 22, 2011, 3:56 p.m.
On 06/22/2011 08:32 AM, Uros Bizjak wrote:
> On Wed, Jun 22, 2011 at 3:04 PM, Joseph S. Myers
> <joseph@codesourcery.com> wrote:
> 
>>> Some -pie TLS tests are unsupported due to "TLS local exec code cannot
>>> be linked into shared objects".
>>
>> Is there something about the Alpha ABI that makes it impossible to support
>> for PIEs (which are different from shared libraries)?  The conclusion for
>> ARM was that this was a linker bug
>> <http://sourceware.org/ml/binutils/2011-06/msg00204.html>.
> 
> Let's ask rth about this...

Yep, alpha has the same bug that arm did.


r~
Uros Bizjak - June 22, 2011, 4:07 p.m.
On Wed, Jun 22, 2011 at 5:56 PM, Richard Henderson <rth@redhat.com> wrote:

>>>> Some -pie TLS tests are unsupported due to "TLS local exec code cannot
>>>> be linked into shared objects".
>>>
>>> Is there something about the Alpha ABI that makes it impossible to support
>>> for PIEs (which are different from shared libraries)?  The conclusion for
>>> ARM was that this was a linker bug
>>> <http://sourceware.org/ml/binutils/2011-06/msg00204.html>.
>>
>> Let's ask rth about this...
>
> Yep, alpha has the same bug that arm did.

OK, will revert the patch.  Sorry for being impatient, but the patch
looked so obvious, considering the error... :-|

Uros.

Patch

Index: gcc.dg/torture/tls/tls-test.c
===================================================================
--- gcc.dg/torture/tls/tls-test.c	(revision 175285)
+++ gcc.dg/torture/tls/tls-test.c	(working copy)
@@ -2,6 +2,7 @@ 
 /* { dg-require-effective-target tls  }  */
 /* { dg-require-effective-target pthread } */
 /* { dg-options "-pthread" } */
+/* { dg-skip-if "TLS local exec code cannot be linked into shared objects" { alpha*-*-linux* } { "-pie" } { "" } } */
 
 #include <pthread.h>
 extern int printf (char *,...);
Index: gcc.dg/torture/tls/run-le.c
===================================================================
--- gcc.dg/torture/tls/run-le.c	(revision 175285)
+++ gcc.dg/torture/tls/run-le.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do run } */
 /* { dg-require-effective-target tls_runtime } */
 /* { dg-add-options tls } */
+/* { dg-skip-if "TLS local exec code cannot be linked into shared objects" { alpha*-*-linux* } { "-pie" } { "" } } */
 
 extern void abort (void);
 
Index: gcc.dg/torture/tls/thr-init-1.c
===================================================================
--- gcc.dg/torture/tls/thr-init-1.c	(revision 175285)
+++ gcc.dg/torture/tls/thr-init-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do run } */
 /* { dg-require-effective-target tls_runtime } */
 /* { dg-add-options tls } */
+/* { dg-skip-if "TLS local exec code cannot be linked into shared objects" { alpha*-*-linux* } { "-pie" } { "" } } */
 
 extern int printf (char *,...);
 extern void abort() ;
Index: gcc.dg/torture/tls/thr-init-2.c
===================================================================
--- gcc.dg/torture/tls/thr-init-2.c	(revision 175285)
+++ gcc.dg/torture/tls/thr-init-2.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do run } */
 /* { dg-require-effective-target tls_runtime } */
 /* { dg-add-options tls } */
+/* { dg-skip-if "TLS local exec code cannot be linked into shared objects" { alpha*-*-linux* } { "-pie" } { "" } } */
 
 extern int printf (char *,...);
 extern void abort() ;