diff options
author | Stan Shebs <stanshebs@google.com> | 2018-01-19 12:23:55 -0800 |
---|---|---|
committer | Stan Shebs <stanshebs@google.com> | 2018-01-24 16:03:39 -0800 |
commit | b5fbe0360190a28d4230435e34422ebaade4fd4b (patch) | |
tree | a8b922f41bf7b2294b1d4c0e97b8afc698512445 | |
parent | 2defba5a32d87289fd4c2aa82307481b13d65e61 (diff) | |
download | glibc-b5fbe0360190a28d4230435e34422ebaade4fd4b.tar glibc-b5fbe0360190a28d4230435e34422ebaade4fd4b.tar.gz glibc-b5fbe0360190a28d4230435e34422ebaade4fd4b.tar.bz2 glibc-b5fbe0360190a28d4230435e34422ebaade4fd4b.zip |
Add clang version of __hidden_proto
-rw-r--r-- | include/libc-symbols.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h index 6137304b0b..eb4dbbe777 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -459,9 +459,19 @@ for linking") __hidden_proto (name, , __GI_##name, ##attrs) # define hidden_tls_proto(name, attrs...) \ __hidden_proto (name, __thread, __GI_##name, ##attrs) +#ifndef __clang__ # define __hidden_proto(name, thread, internal, attrs...) \ extern thread __typeof (name) name __asm__ (__hidden_asmname (#internal)) \ __hidden_proto_hiddenattr (attrs); +#else +# define __hidden_proto(name, thread, internal, attrs...) \ + extern thread __typeof (name) name \ + __hidden_proto_hiddenattr (attrs); \ + _Pragma (__redefine(name, internal)) +/* Note that this macro does not use __hidden_asmname, since it produces a string. */ +# define __redefine(name, internal) __stringize(redefine_extname name internal) +# define __stringize(X) #X +#endif # define __hidden_asmname(name) \ __hidden_asmname1 (__USER_LABEL_PREFIX__, name) # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name) |