mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 22:30:07 +00:00
Fix hppa local PLT entries for sigprocmask (bug 18124).
When adding/updating localplt.data for various architectures to get the compilation tests passing everywhere, I generally made it reflect the existing state of what local PLT entries were actually seen, rather than an ideal state with as few as possible such entries, mainly for functions that are intended to be interposable. This patch eliminates some local PLT entries for hppa by using __sigprocmask instead of sigprocmask in getcontext and setcontext. The specific case of sigprocmask called by setcontext is the third of four items in bug 18124 (the other three have already been fixed for 2.26 or earlier releases). Note that hppa-specific localplt.data entries for __sigsetjmp, _IO_funlockfile and __errno_location remain, but the causes / fixes are less immediately obvious from source inspection. Tested (compilation tests only) with build-many-glibcs.py for hppa-linux-gnu. [BZ #18124] * sysdeps/hppa/bsd-setjmp.S: Include <sysdep.h>. (setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp. * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Call __sigprocmask instead of sigprocmask. * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise. * sysdeps/unix/sysv/linux/hppa/localplt.data: Remove entries for __sigsetjmp and sigprocmask.
This commit is contained in:
parent
055ac2a7ee
commit
3785b31c16
10
ChangeLog
10
ChangeLog
@ -1,5 +1,15 @@
|
||||
2018-02-15 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #18124]
|
||||
* sysdeps/hppa/bsd-setjmp.S: Include <sysdep.h>.
|
||||
(setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp.
|
||||
* sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Call
|
||||
__sigprocmask instead of sigprocmask.
|
||||
* sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/localplt.data: Remove entries for
|
||||
__sigsetjmp and sigprocmask.
|
||||
|
||||
[BZ #15105]
|
||||
* include/argz.h (argz_next): Use libc_hidden_proto.
|
||||
(__argz_next): Likewise.
|
||||
|
@ -160,7 +160,7 @@ ENTRY(__getcontext)
|
||||
/* sigprocmask(SIG_BLOCK, NULL, &ucp->uc_sigmask); */
|
||||
ldo oSIGMASK(%r26), %r24
|
||||
copy %r0, %r25
|
||||
bl sigprocmask, %r2
|
||||
bl __sigprocmask, %r2
|
||||
ldi SIG_BLOCK, %r26
|
||||
|
||||
/* Epilogue */
|
||||
|
@ -8,7 +8,6 @@ libc.so: memalign
|
||||
libc.so: realloc
|
||||
libc.so: __sigsetjmp
|
||||
libc.so: _IO_funlockfile
|
||||
libc.so: sigprocmask
|
||||
libc.so: __errno_location
|
||||
libm.so: matherr
|
||||
libpthread.so: __errno_location
|
||||
|
@ -43,7 +43,7 @@ ENTRY(__setcontext)
|
||||
/* sigprocmask(SIG_BLOCK, &ucp->uc_sigmask, NULL); */
|
||||
copy %r0, %r24
|
||||
ldo oSIGMASK(%r3), %r25
|
||||
bl sigprocmask, %r2
|
||||
bl __sigprocmask, %r2
|
||||
ldi SIG_SETMASK, %r26
|
||||
|
||||
comib,<>,n 0,%ret0,.Lerror
|
||||
|
Loading…
Reference in New Issue
Block a user