mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
[s390] Define a __tls_get_addr macro to avoid declaring it again
commit 050f7298e1
added an extern
declaration for __tls_get_addr that conflicts with the one in s390
dl-tls.h, based on whether __tls_get_addr is defined as a macro. The
rationale seems to be based on the assumption that __tls_get_addr is
exported for every architecture and hence an internal non-plt alias is
needed. This is not true for s390 though, since it exports
__tls_get_offset and not __tls_get_addr. This results in tst-audit9
being stuck in an infinite loop.
This patch fixes this by defining a __tls_get_addr macro to itself so
as to not use the conflicting declaration.
This commit is contained in:
parent
ce6615c9c6
commit
d639a36345
@ -1,3 +1,8 @@
|
|||||||
|
2015-01-14 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/s390/dl-tls.h [IS_IN (rtld)]: Define __tls_get_addr
|
||||||
|
macro.
|
||||||
|
|
||||||
2015-01-13 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
2015-01-13 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* sysdeps/powerpc/powerpc64/power7/memcmp.S (memcmp): Fix performance
|
* sysdeps/powerpc/powerpc64/power7/memcmp.S (memcmp): Fix performance
|
||||||
|
@ -33,6 +33,13 @@ extern unsigned long __tls_get_offset (unsigned long got_offset);
|
|||||||
|
|
||||||
# include <shlib-compat.h>
|
# include <shlib-compat.h>
|
||||||
|
|
||||||
|
/* dl-tls.c declares __tls_get_addr as an exported symbol if it is not defined
|
||||||
|
as a macro. It seems suitable to do that in the generic code because all
|
||||||
|
architectures other than s390 export __tls_get_addr. The declaration causes
|
||||||
|
problems in s390 though, so we define __tls_get_addr here to avoid declaring
|
||||||
|
__tls_get_addr again. */
|
||||||
|
# define __tls_get_addr __tls_get_addr
|
||||||
|
|
||||||
extern void *__tls_get_addr (tls_index *ti) attribute_hidden;
|
extern void *__tls_get_addr (tls_index *ti) attribute_hidden;
|
||||||
/* Make a temporary alias of __tls_get_addr to remove the hidden
|
/* Make a temporary alias of __tls_get_addr to remove the hidden
|
||||||
attribute. Then export __tls_get_addr as __tls_get_addr_internal
|
attribute. Then export __tls_get_addr as __tls_get_addr_internal
|
||||||
|
Loading…
Reference in New Issue
Block a user