]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Hide internal signal functions [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 23:04:26 +0000 (16:04 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 23:04:41 +0000 (16:04 -0700)
Hide internal signal functions to allow direct access within libc.so and
libc.a without using GOT nor PLT.

__GI___kill and __GI___sigaltstack are defined when syscalls.list is
used to generate them.  Otherwise libc_hidden_def is needed explicitly.

[BZ #18822]
* include/signal.h (__kill): Add libc_hidden_proto.
(__sigblock): Likewise.
(__sigprocmask): Likewise.
(__sigaltstack): Likewise.
* signal/kill.c (__kill): Add libc_hidden_def.
* signal/sigblock.c (__sigblock): Likewise.
* signal/sigprocmask.c (__sigprocmask): Likewise.
* sysdeps/mach/hurd/kill.c (__kill): Likewise.
* sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
* sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
* sysdeps/posix/sigblock.c (__sigblock): Likewise.
* sysdeps/unix/sysv/linux/alpha/sigprocmask.c (__sigprocmask):
Likewise.
* sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
(__sigprocmask): Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask):
Likewise.
* /sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
(__sigprocmask): Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
Likewise.

15 files changed:
ChangeLog
include/signal.h
signal/kill.c
signal/sigblock.c
signal/sigprocmask.c
sysdeps/mach/hurd/kill.c
sysdeps/mach/hurd/sigaltstack.c
sysdeps/mach/hurd/sigprocmask.c
sysdeps/posix/sigblock.c
sysdeps/unix/sysv/linux/alpha/sigprocmask.c
sysdeps/unix/sysv/linux/ia64/sigprocmask.c
sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
sysdeps/unix/sysv/linux/sigprocmask.c
sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
sysdeps/unix/sysv/linux/x86_64/sigprocmask.c

index dcf1c0d090688c3b401292397a4b4ae7f392ee35..9397cdf56270a5cb034c39b0c44fa2b37c4a77a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #18822]
+       * include/signal.h (__kill): Add libc_hidden_proto.
+       (__sigblock): Likewise.
+       (__sigprocmask): Likewise.
+       (__sigaltstack): Likewise.
+       * signal/kill.c (__kill): Add libc_hidden_def.
+       * signal/sigblock.c (__sigblock): Likewise.
+       * signal/sigprocmask.c (__sigprocmask): Likewise.
+       * sysdeps/mach/hurd/kill.c (__kill): Likewise.
+       * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
+       * sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
+       * sysdeps/posix/sigblock.c (__sigblock): Likewise.
+       * sysdeps/unix/sysv/linux/alpha/sigprocmask.c (__sigprocmask):
+       Likewise.
+       * sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+       (__sigprocmask): Likewise.
+       * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask):
+       Likewise.
+       * /sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+       (__sigprocmask): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
+       Likewise.
+
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        [BZ #18822]
index 61ad422dcb86f349e15d37ec6d9136cdd4ce3e5d..7cbe64b8adf9b1311b5c3fb752226e22ca27f5b8 100644 (file)
@@ -17,13 +17,16 @@ libc_hidden_proto (_sys_siglist)
 /* Now define the internal interfaces.  */
 extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
 extern int __kill (__pid_t __pid, int __sig);
+libc_hidden_proto (__kill)
 extern int __sigaction (int __sig, const struct sigaction *__restrict __act,
                        struct sigaction *__restrict __oact);
 libc_hidden_proto (__sigaction)
 extern int __sigblock (int __mask);
+libc_hidden_proto (__sigblock)
 extern int __sigsetmask (int __mask);
 extern int __sigprocmask (int __how,
                          const sigset_t *__set, sigset_t *__oset);
+libc_hidden_proto (__sigprocmask)
 extern int __sigsuspend (const sigset_t *__set);
 libc_hidden_proto (__sigsuspend)
 extern int __sigwait (const sigset_t *__set, int *__sig);
@@ -40,6 +43,7 @@ extern int __sigreturn (struct sigcontext *__scp);
 #endif
 extern int __sigaltstack (const stack_t *__ss,
                          stack_t *__oss);
+libc_hidden_proto (__sigaltstack)
 extern int __libc_sigaction (int sig, const struct sigaction *act,
                             struct sigaction *oact);
 libc_hidden_proto (__libc_sigaction)
index c7591b10c1e0c84ea4f092584ea2b008dd51b12f..66f85d127c3163a767ad34f9de545cb6a34b998f 100644 (file)
@@ -30,4 +30,5 @@ __kill (int pid, int sig)
 }
 stub_warning (kill)
 
+libc_hidden_def (__kill)
 weak_alias (__kill, kill)
index a8be9dbde92862d888fc10ba41698b2447602bd4..fca370a52d0bf23ff1e994f29e9f52fae22b8227 100644 (file)
@@ -27,4 +27,5 @@ __sigblock (int mask)
 }
 stub_warning (sigblock)
 
+libc_hidden_def (__sigblock)
 weak_alias (__sigblock, sigblock)
index afcf5a116ee6e4d772d0fdce7e46dabe73942d12..ca9bb556b8188ec8be57d3f41ba9cf2780eef141 100644 (file)
@@ -44,4 +44,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
    and we don't want warnings for every use of abort on
    a system without safe signals.  */
 
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index 2d556dd2ff28e38fc24c191ca0154b3185d588e9..5360bb52c564f8a848afb592b62deea22ea2e45c 100644 (file)
@@ -146,4 +146,5 @@ __kill (pid_t pid, int sig)
   return delivered ? 0 : __hurd_fail (err ?: ESRCH);
 }
 
+libc_hidden_def (__kill)
 weak_alias (__kill, kill)
index 4fba69e76673cff0b49f5323579dc9d6de643c19..3fde510e23193daf2f2aa4eef1732c0fb560d45a 100644 (file)
@@ -57,4 +57,5 @@ __sigaltstack (const stack_t *argss, stack_t *oss)
 
   return 0;
 }
+libc_hidden_def (__sigaltstack)
 weak_alias (__sigaltstack, sigaltstack)
index a4ebe580ff5b433c1bea38bae1ede32e5ab52a04..70b9a10a7bf47d97ebc3247b4a237d650231a9df 100644 (file)
@@ -80,4 +80,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
   return 0;
 }
 
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index 1f8686458bfbd30d198581025d9c71ec5fc3590f..ab59f2968fa1b7d0957d2d352d5468e3d15d4c90 100644 (file)
@@ -35,4 +35,5 @@ __sigblock (int mask)
   return sigset_get_old_mask (&oset);
 }
 
+libc_hidden_def (__sigblock)
 weak_alias (__sigblock, sigblock)
index 39a07de475aeac140cac0bddec702c238a3352f9..ebec70cff099fffdb77b6a1af10994ea1a56404a 100644 (file)
@@ -54,4 +54,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
   return 0;
 }
 
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask);
index 7e62438b0387658f645f21eb06e9f57b90d32b5c..920c5fd052cef45fa1fdbf606f504fa7b08f2af6 100644 (file)
@@ -36,4 +36,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
 }
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index 4cbbc8e133efc2cc5f194b5f5b0d747f101fcb5b..a8010e7f14ad11d2bad0ec88150819e0f068d8ab 100644 (file)
@@ -34,4 +34,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
 }
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index e39e5f687226505a33632b1b3f4f15462ab56c66..d0b8e049b297b2eae20da80f40103bba2c460397 100644 (file)
@@ -53,4 +53,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
 
   return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
 }
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index c2205d0044ab7dbc393d3a66c8192426f29bfed8..ef7d7feb4965b07e2c1d524e987f768fba384934 100644 (file)
@@ -30,4 +30,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
 }
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)
index a87ad106eaf2820d9ac361808c0721b2eb46eb23..1610ddf47fbb371b4d6deb35215994723faa18c8 100644 (file)
@@ -35,4 +35,5 @@ __sigprocmask (int how, const sigset_t *set, sigset_t *oset)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
 }
+libc_hidden_def (__sigprocmask)
 weak_alias (__sigprocmask, sigprocmask)