Message ID | BANLkTin5L2RsfYNOfKK7kiY3sgZOdAMiFA@mail.gmail.com |
---|---|
State | New |
Headers | show |
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>.
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.
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~
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.
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() ;