mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
Fix MIPS64 *_nocancel gp setup.
The 64-bit MIPS ABIs involve the caller setting up t9 ($25) to the address of the called function, and the called function then using this in a .cpsetup directive to compute gp. The .cpsetup directive needs to name the function to which t9 points for this purpose. In the definition of *_nocancel functions, the directive pointed to the normal entry point rather than the _nocancel one, resulting in segfaults when the _nocancel functions were used. This patch corrects the function name used in the directive. (It seems the bug was latent until Roland's not-cancel.h unification, with the _nocancel entry points not previously being used - so not user-visible in a release, so no Bugzilla entry required.) Tested mips64 sufficiently to confirm the previously seen segfaults are fixed. * sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h [__PIC__] (PSEUDO): Use name of _nocancel entry point in corresponding .cpsetup call.
This commit is contained in:
parent
3cb4de4741
commit
b351d85aa2
@ -1,3 +1,9 @@
|
||||
2014-06-26 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
|
||||
[__PIC__] (PSEUDO): Use name of _nocancel entry point in
|
||||
corresponding .cpsetup call.
|
||||
|
||||
2014-06-26 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S: Moved ...
|
||||
|
@ -47,7 +47,7 @@
|
||||
.globl __##syscall_name##_nocancel; \
|
||||
__##syscall_name##_nocancel: \
|
||||
SAVESTK; \
|
||||
.cpsetup t9, STKOFF_GP, name; \
|
||||
.cpsetup t9, STKOFF_GP, __##syscall_name##_nocancel; \
|
||||
cfi_rel_offset (gp, STKOFF_GP); \
|
||||
li v0, SYS_ify(syscall_name); \
|
||||
syscall; \
|
||||
|
Loading…
Reference in New Issue
Block a user