From 6253bacdc00de132dec452ff7c6ce3ba7fa23d81 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 10 Mar 2018 09:27:04 -0800 Subject: [PATCH] Remove hidden __libc_longjmp Since __libc_longjmp is a private interface for cancellation implementation in libpthread, there is no need to provide hidden __libc_longjmp in libc. Tested with build-many-glibcs.py. * include/setjmp.h (__libc_longjmp): Remove libc_hidden_proto. * setjmp/longjmp.c (__libc_longjmp): Remove libc_hidden_def. * sysdeps/s390/longjmp.c (__libc_longjmp): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S (__libc_longjmp): Likewise. --- ChangeLog | 8 ++++++++ include/setjmp.h | 1 - setjmp/longjmp.c | 3 ++- sysdeps/s390/longjmp.c | 1 - sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S | 1 - 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f71d41b0a..8490083ead 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2018-03-10 H.J. Lu + + * include/setjmp.h (__libc_longjmp): Remove libc_hidden_proto. + * setjmp/longjmp.c (__libc_longjmp): Remove libc_hidden_def. + * sysdeps/s390/longjmp.c (__libc_longjmp): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S (__libc_longjmp): + Likewise. + 2018-03-09 Florian Weimer * malloc/malloc.c (prev_size, set_prev_size, prev_chunk): Fix typo diff --git a/include/setjmp.h b/include/setjmp.h index f1b19f5ceb..263bc64b3d 100644 --- a/include/setjmp.h +++ b/include/setjmp.h @@ -23,7 +23,6 @@ extern void __libc_siglongjmp (sigjmp_buf env, int val) __attribute__ ((noreturn)); extern void __libc_longjmp (sigjmp_buf env, int val) __attribute__ ((noreturn)); -libc_hidden_proto (__libc_longjmp) libc_hidden_proto (_setjmp) libc_hidden_proto (__sigsetjmp) diff --git a/setjmp/longjmp.c b/setjmp/longjmp.c index 6b4737605a..a2a7065a85 100644 --- a/setjmp/longjmp.c +++ b/setjmp/longjmp.c @@ -40,8 +40,9 @@ __libc_siglongjmp (sigjmp_buf env, int val) } #ifndef __libc_siglongjmp +/* __libc_longjmp is a private interface for cancellation implementation + in libpthread. */ strong_alias (__libc_siglongjmp, __libc_longjmp) -libc_hidden_def (__libc_longjmp) weak_alias (__libc_siglongjmp, _longjmp) weak_alias (__libc_siglongjmp, longjmp) weak_alias (__libc_siglongjmp, siglongjmp) diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c index 6343c261b5..e61cdba2a3 100644 --- a/sysdeps/s390/longjmp.c +++ b/sysdeps/s390/longjmp.c @@ -33,7 +33,6 @@ but were reverted before 2.20. Thus both versions are the same function. */ strong_alias (__libc_siglongjmp, __libc_longjmp) -libc_hidden_def (__libc_longjmp) weak_alias (__libc_siglongjmp, __v1_longjmp) weak_alias (__libc_siglongjmp, __v2_longjmp) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S index 208c6db3a9..5937396fc7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S @@ -45,7 +45,6 @@ END(__libc_siglongjmp) strong_alias(__libc_siglongjmp, __longjmp) strong_alias(__libc_siglongjmp, __libc_longjmp) -libc_hidden_def (__libc_longjmp) weak_alias (__libc_siglongjmp, longjmp) weak_alias (__libc_siglongjmp, _longjmp) weak_alias (__libc_siglongjmp, siglongjmp)