aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-04 23:19:18 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-04 23:19:18 +0000
commite5f9508a32426b7c3948dc741d84355071ed9539 (patch)
tree2472ac1ecdbba3bffc3081afd7ea53ab76429852
parentb2fd61ca9b252f61d0a5afd06cc5c95a3898d4df (diff)
downloadglibc-e5f9508a32426b7c3948dc741d84355071ed9539.zip
glibc-e5f9508a32426b7c3948dc741d84355071ed9539.tar.gz
glibc-e5f9508a32426b7c3948dc741d84355071ed9539.tar.bz2
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.
-rw-r--r--ChangeLog6
-rw-r--r--include/setjmp.h2
-rw-r--r--setjmp/longjmp.c2
-rw-r--r--sysdeps/s390/longjmp.c2
4 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 174bb6a..58d4d94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-04-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * 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 <tuliom@linux.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Increase double-precision
diff --git a/include/setjmp.h b/include/setjmp.h
index 263bc64..ed58251 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 a2a7065..72d43f4 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 e61cdba..1064647 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) */