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:
H.J. Lu 2015-08-19 04:39:47 -07:00
parent 3552daa7ac
commit 7e58ab243d
3 changed files with 11 additions and 6 deletions

View File

@ -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>
* sysdeps/i386/i686/Makefile

View File

@ -102,15 +102,10 @@ L(exitcode):
parameters (see above). */
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. */
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
exit the program with the return error value (-1). */

View File

@ -91,5 +91,6 @@ ENTRY(__setcontext)
ret
PSEUDO_END(__setcontext)
libc_hidden_def (__setcontext)
weak_alias (__setcontext, setcontext)