mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Call __setcontext with HIDDEN_JUMPTARGET
i386 __makecontext should call __setcontext with HIDDEN_JUMPTARGET. [BZ #18822] * sysdeps/unix/sysv/linux/i386/makecontext.S (__makecontext): Don't load %ebx when calling __setcontext. Call __setcontext with HIDDEN_JUMPTARGET. * sysdeps/unix/sysv/linux/i386/setcontext.S (__setcontext): Add libc_hidden_def.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2015-08-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
[BZ #18822]
|
||||||
|
* sysdeps/unix/sysv/linux/i386/makecontext.S (__makecontext):
|
||||||
|
Don't load %ebx when calling __setcontext. Call __setcontext
|
||||||
|
with HIDDEN_JUMPTARGET.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/setcontext.S (__setcontext): Add
|
||||||
|
libc_hidden_def.
|
||||||
|
|
||||||
2015-08-19 H.J. Lu <hongjiu.lu@intel.com>
|
2015-08-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* sysdeps/i386/i686/Makefile
|
* sysdeps/i386/i686/Makefile
|
||||||
|
@ -102,15 +102,10 @@ L(exitcode):
|
|||||||
parameters (see above). */
|
parameters (see above). */
|
||||||
leal (%esp,%ebx,4), %esp
|
leal (%esp,%ebx,4), %esp
|
||||||
|
|
||||||
#ifdef PIC
|
|
||||||
call 1f
|
|
||||||
1: popl %ebx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
|
|
||||||
#endif
|
|
||||||
cmpl $0, (%esp) /* Check the next context. */
|
cmpl $0, (%esp) /* Check the next context. */
|
||||||
je 2f /* If it is zero exit. */
|
je 2f /* If it is zero exit. */
|
||||||
|
|
||||||
call JUMPTARGET(__setcontext)
|
call HIDDEN_JUMPTARGET(__setcontext)
|
||||||
/* If this returns (which can happen if the syscall fails) we'll
|
/* If this returns (which can happen if the syscall fails) we'll
|
||||||
exit the program with the return error value (-1). */
|
exit the program with the return error value (-1). */
|
||||||
|
|
||||||
|
@ -91,5 +91,6 @@ ENTRY(__setcontext)
|
|||||||
|
|
||||||
ret
|
ret
|
||||||
PSEUDO_END(__setcontext)
|
PSEUDO_END(__setcontext)
|
||||||
|
libc_hidden_def (__setcontext)
|
||||||
|
|
||||||
weak_alias (__setcontext, setcontext)
|
weak_alias (__setcontext, setcontext)
|
||||||
|
Reference in New Issue
Block a user