about summary refs log tree commit diff
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.tar.gz
glibc-e5f9508a32426b7c3948dc741d84355071ed9539.tar.xz
glibc-e5f9508a32426b7c3948dc741d84355071ed9539.zip
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 174bb6a46a..58d4d94ec0 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 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)  */