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.
This commit is contained in:
Samuel Thibault 2018-06-16 02:47:51 +02:00
parent 7a646a93fa
commit b0344cf5c5
3 changed files with 20 additions and 7 deletions

View File

@ -25,6 +25,10 @@
(__mach_msg): Add hidden prototype.
* mach/msg.c: Include <mach.h>.
(__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 <joseph@codesourcery.com>

View File

@ -97,7 +97,8 @@ else
$(mach-syscalls:%=$(objpfx)%.S): $(objpfx)%.S: $(objpfx)mach-syscalls.mk
(echo '#include <sysdep.h>'; \
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

View File

@ -1,13 +1,21 @@
#ifndef _MACH_MACH_TRAPS_H
#include_next <mach/mach_traps.h>
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