diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | sysdeps/unix/make-syscalls.sh | 6 | ||||
-rw-r--r-- | sysdeps/unix/syscall-template.S | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 6 |
4 files changed, 21 insertions, 7 deletions
@@ -1,5 +1,16 @@ 2015-06-17 Joseph Myers <joseph@codesourcery.com> + * sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Use + hidden_def and hidden_weak instead of libc_hidden_def and + libc_hidden_weak. + (top level): Refer to hidden_def in comment. + * sysdeps/unix/syscall-template.S (syscall_hidden_def): New + macro. Use it instead of libc_hidden_def. + * sysdeps/unix/sysv/linux/syscalls.list (mq_timedsend): Do not + specify __GI_* name explicitly. + (mq_timedreceive): Likewise. + (mq_setattr): Likewise. + [BZ #18544] * nptl/pthread_barrier_init.c (pthread_barrier_init): Rename to __pthread_barrier_init and define as weak alias of diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh index 12f664e..fbf9660 100644 --- a/sysdeps/unix/make-syscalls.sh +++ b/sysdeps/unix/make-syscalls.sh @@ -128,11 +128,11 @@ emit_weak_aliases() !*) name=`echo $name | sed 's/.//'` echo " echo 'strong_alias ($strong, $name)'; \\" - echo " echo 'libc_hidden_def ($name)'; \\" + echo " echo 'hidden_def ($name)'; \\" ;; *) echo " echo 'weak_alias ($strong, $name)'; \\" - echo " echo 'libc_hidden_weak ($name)'; \\" + echo " echo 'hidden_weak ($name)'; \\" ;; esac done @@ -287,7 +287,7 @@ while read file srcfile caller syscall args strong weak; do echo '}'; \\ echo 'asm (".type ${strong}, %gnu_indirect_function");'; \\ EOF - # This is doing "libc_hidden_def (${strong})", but the compiler + # This is doing "hidden_def (${strong})", but the compiler # doesn't know that we've defined ${strong} in the same file, so # we can't do it the normal way. cat <<EOF diff --git a/sysdeps/unix/syscall-template.S b/sysdeps/unix/syscall-template.S index 62ebe02..e86e6a7 100644 --- a/sysdeps/unix/syscall-template.S +++ b/sysdeps/unix/syscall-template.S @@ -47,6 +47,9 @@ # include <sysdep.h> #endif +/* This indirection is needed so that SYMBOL gets macro-expanded. */ +#define syscall_hidden_def(SYMBOL) hidden_def (SYMBOL) + #define T_PSEUDO(SYMBOL, NAME, N) PSEUDO (SYMBOL, NAME, N) #define T_PSEUDO_NOERRNO(SYMBOL, NAME, N) PSEUDO_NOERRNO (SYMBOL, NAME, N) #define T_PSEUDO_ERRVAL(SYMBOL, NAME, N) PSEUDO_ERRVAL (SYMBOL, NAME, N) @@ -84,4 +87,4 @@ T_PSEUDO_END (SYSCALL_SYMBOL) #endif -libc_hidden_def (SYSCALL_SYMBOL) +syscall_hidden_def (SYSCALL_SYMBOL) diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 42b6c2e..09dd10d 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -106,9 +106,9 @@ removexattr - removexattr i:ss removexattr lremovexattr - lremovexattr i:ss lremovexattr fremovexattr - fremovexattr i:is fremovexattr -mq_timedsend - mq_timedsend Ci:ipiip __GI_mq_timedsend mq_timedsend -mq_timedreceive - mq_timedreceive Ci:ipipp __GI_mq_timedreceive mq_timedreceive -mq_setattr - mq_getsetattr i:ipp __GI_mq_setattr mq_setattr +mq_timedsend - mq_timedsend Ci:ipiip mq_timedsend +mq_timedreceive - mq_timedreceive Ci:ipipp mq_timedreceive +mq_setattr - mq_getsetattr i:ipp mq_setattr timerfd_create EXTRA timerfd_create i:ii timerfd_create timerfd_settime EXTRA timerfd_settime i:iipp timerfd_settime |