From b0344cf5c55b4ca83f383c7a1896a016dfe66687 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 16 Jun 2018 02:47:51 +0200 Subject: [PATCH] hurd: Avoid PLT references to syscalls * mach/Makefile ($(mach-syscalls:%=$(objpfx))): Add hidden definition. * sysdeps/mach/include/mach/mach_traps.h (__mach_reply_port, __mach_thread_self, __mach_task_self, __mach_host_self, __swtch, __swtch_pri, __thread_switch, __evc_wait): Add hidden prototypes. --- ChangeLog | 4 ++++ mach/Makefile | 3 ++- sysdeps/mach/include/mach/mach_traps.h | 20 ++++++++++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index d81c823..8c4b6cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,6 +25,10 @@ (__mach_msg): Add hidden prototype. * mach/msg.c: Include . (__mach_msg): Add hidden definition. + * mach/Makefile ($(mach-syscalls:%=$(objpfx))): Add hidden definition. + * sysdeps/mach/include/mach/mach_traps.h (__mach_reply_port, + __mach_thread_self, __mach_task_self, __mach_host_self, __swtch, + __swtch_pri, __thread_switch, __evc_wait): Add hidden prototypes. 2018-06-15 Joseph Myers diff --git a/mach/Makefile b/mach/Makefile index 2683587..435ae68 100644 --- a/mach/Makefile +++ b/mach/Makefile @@ -97,7 +97,8 @@ else $(mach-syscalls:%=$(objpfx)%.S): $(objpfx)%.S: $(objpfx)mach-syscalls.mk (echo '#include '; \ echo 'kernel_trap (__$*,$(sysno-$*),$(nargs-$*))'; \ - echo 'weak_alias (__$*, $*)') > $@-new + echo 'weak_alias (__$*, $*)'; \ + echo 'libc_hidden_def (__$*)') > $@-new mv -f $@-new $@ generated += $(mach-syscalls:=.S) endif # mach-syscalls diff --git a/sysdeps/mach/include/mach/mach_traps.h b/sysdeps/mach/include/mach/mach_traps.h index d1b2feb..2d4c1f9 100644 --- a/sysdeps/mach/include/mach/mach_traps.h +++ b/sysdeps/mach/include/mach/mach_traps.h @@ -1,13 +1,21 @@ #ifndef _MACH_MACH_TRAPS_H #include_next -extern mach_port_t __mach_reply_port (void) attribute_hidden; +extern mach_port_t __mach_reply_port (void); +libc_hidden_proto (__mach_reply_port) extern mach_port_t __mach_thread_self (void); +libc_hidden_proto (__mach_thread_self) extern mach_port_t (__mach_task_self) (void); -extern mach_port_t (__mach_host_self) (void) attribute_hidden; -extern boolean_t __swtch (void) attribute_hidden; -extern boolean_t __swtch_pri (int priority) attribute_hidden; +libc_hidden_proto (__mach_task_self) +extern mach_port_t (__mach_host_self) (void); +libc_hidden_proto (__mach_host_self) +extern boolean_t __swtch (void); +libc_hidden_proto (__swtch) +extern boolean_t __swtch_pri (int priority); +libc_hidden_proto (__swtch_pri) kern_return_t __thread_switch (mach_port_t new_thread, - int option, mach_msg_timeout_t option_time) attribute_hidden; -kern_return_t __evc_wait (unsigned int event) attribute_hidden; + int option, mach_msg_timeout_t option_time); +libc_hidden_proto (__thread_switch) +kern_return_t __evc_wait (unsigned int event); +libc_hidden_proto (__evc_wait) #endif -- 2.7.4