From 82dbf555a4d41690f63b94ccb4db4bf43d873aa0 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 3 Apr 2018 00:34:31 +0000 Subject: hurd: Avoid more libc.so local PLTs * hurd/catch-signal.c (__hurd_catch_signal): Call __libc_siglongjmp instead if siglongjmp. (hurd_safe_memmove): Call __libc_longjmp instead of longjmp. * hurd/hurdfault.c (faulted): Call __libc_longjmp instead of longjmp. * include/setjmp.h (__libc_siglongjmp, __libc_longjmp): New hidden prototypes. * libio/iolibio.h (_IO_puts): New hidden prototype. * libio/ioputs.c (_IO_puts): New hidden def. * setjmp/longjmp.c (__libc_longjmp, __libc_siglongjmp): New hidden defs. * sysdeps/mach/hurd/sigwait.c (__sigwait): Call __libc_longjmp instead of longjmp. --- hurd/catch-signal.c | 4 ++-- hurd/hurdfault.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'hurd') diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c index 56ce86532d..a00ccef4fb 100644 --- a/hurd/catch-signal.c +++ b/hurd/catch-signal.c @@ -32,7 +32,7 @@ __hurd_catch_signal (sigset_t sigset, instance calling hurd_catch_signal again would then dump core. */ sigjmp_buf buf; void throw (int signo, long int sigcode, struct sigcontext *scp) - { siglongjmp (buf, scp->sc_error ?: EGRATUITOUS); } + { __libc_siglongjmp (buf, scp->sc_error ?: EGRATUITOUS); } struct hurd_signal_preemptor preemptor = { @@ -121,7 +121,7 @@ hurd_safe_memmove (void *dest, const void *src, size_t nbytes) { jmp_buf buf; void throw (int signo, long int sigcode, struct sigcontext *scp) - { longjmp (buf, scp->sc_error ?: EGRATUITOUS); } + { __libc_longjmp (buf, scp->sc_error ?: EGRATUITOUS); } struct hurd_signal_preemptor src_preemptor = { diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index 39a4522811..c42d5e739a 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -152,7 +152,7 @@ faulted (void) __libc_fatal ("BUG: unexpected fault in signal thread\n"); _hurdsig_fault_preemptor.signals = 0; - longjmp (_hurdsig_fault_env, 1); + __libc_longjmp (_hurdsig_fault_env, 1); } static char faultstack[1024]; -- cgit v1.2.3