From e5f9508a32426b7c3948dc741d84355071ed9539 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 4 Apr 2018 23:19:18 +0000 Subject: [PATCH] hurd: Avoid PLTs for longjmp & siglongjmp * include/setjmp.h (longjmp, siglongjmp): Add hidden protos. * setjmp/longjmp.c (longjmp, siglongjmp): Add hidden defs. * sysdeps/s390/longjmp.c (longjmp, siglongjmp): Add hidden defs. --- ChangeLog | 6 ++++++ include/setjmp.h | 2 ++ setjmp/longjmp.c | 2 ++ sysdeps/s390/longjmp.c | 2 ++ 4 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 174bb6a46a..58d4d94ec0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-04-05 Samuel Thibault + + * include/setjmp.h (longjmp, siglongjmp): Add hidden protos. + * setjmp/longjmp.c (longjmp, siglongjmp): Add hidden defs. + * sysdeps/s390/longjmp.c (longjmp, siglongjmp): Add hidden defs. + 2018-04-04 Tulio Magno Quites Machado Filho * sysdeps/powerpc/fpu/libm-test-ulps: Increase double-precision diff --git a/include/setjmp.h b/include/setjmp.h index 263bc64b3d..ed582516c9 100644 --- a/include/setjmp.h +++ b/include/setjmp.h @@ -26,6 +26,8 @@ extern void __libc_longjmp (sigjmp_buf env, int val) libc_hidden_proto (_setjmp) libc_hidden_proto (__sigsetjmp) +libc_hidden_proto (longjmp) +libc_hidden_proto (siglongjmp) # if IS_IN (rtld) && !defined NO_RTLD_HIDDEN extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden; diff --git a/setjmp/longjmp.c b/setjmp/longjmp.c index a2a7065a85..72d43f45df 100644 --- a/setjmp/longjmp.c +++ b/setjmp/longjmp.c @@ -45,5 +45,7 @@ __libc_siglongjmp (sigjmp_buf env, int val) strong_alias (__libc_siglongjmp, __libc_longjmp) weak_alias (__libc_siglongjmp, _longjmp) weak_alias (__libc_siglongjmp, longjmp) +libc_hidden_def (longjmp) weak_alias (__libc_siglongjmp, siglongjmp) +libc_hidden_def (siglongjmp) #endif diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c index e61cdba2a3..1064647ee0 100644 --- a/sysdeps/s390/longjmp.c +++ b/sysdeps/s390/longjmp.c @@ -43,9 +43,11 @@ weak_alias (__libc_siglongjmp, __v1longjmp) weak_alias (__libc_siglongjmp, __v2longjmp) versioned_symbol (libc, __v1longjmp, longjmp, GLIBC_2_0); compat_symbol (libc, __v2longjmp, longjmp, GLIBC_2_19); +libc_hidden_def (longjmp) weak_alias (__libc_siglongjmp, __v1siglongjmp) weak_alias (__libc_siglongjmp, __v2siglongjmp) versioned_symbol (libc, __v1siglongjmp, siglongjmp, GLIBC_2_0); compat_symbol (libc, __v2siglongjmp, siglongjmp, GLIBC_2_19); +libc_hidden_def (siglongjmp) #endif /* SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -- 2.11.4.GIT