about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-06-14 01:43:04 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-06-14 01:43:23 +0200
commit06d1a8263d72dfb3e638cb98c92bee3405262f44 (patch)
tree34b080c0e9108d98de22fed73f126dffaa0eeec6
parent126b3ec370f0fa8ecbbce27c8c4b621b1ce6f02d (diff)
downloadglibc-06d1a8263d72dfb3e638cb98c92bee3405262f44.tar.gz
glibc-06d1a8263d72dfb3e638cb98c92bee3405262f44.tar.xz
glibc-06d1a8263d72dfb3e638cb98c92bee3405262f44.zip
hurd: Avoid a PLT reference
	* sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Do not
	use PLT to call _hurd_self_sigstate.
-rw-r--r--ChangeLog2
-rw-r--r--sysdeps/mach/hurd/i386/____longjmp_chk.S7
2 files changed, 3 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index fab0c81ada..d094d20cfd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
 	__thread_switch, __evc_wait): Move declarations to...
 	* sysdeps/mach/include/mach/mach_traps.h: ... new file, and add
 	attribute_hidden.
+	* sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Do not
+	use PLT to call _hurd_self_sigstate.
 
 2018-06-13  Joseph Myers  <joseph@codesourcery.com>
 
diff --git a/sysdeps/mach/hurd/i386/____longjmp_chk.S b/sysdeps/mach/hurd/i386/____longjmp_chk.S
index 1ee7bae2e4..1bde0efc3d 100644
--- a/sysdeps/mach/hurd/i386/____longjmp_chk.S
+++ b/sysdeps/mach/hurd/i386/____longjmp_chk.S
@@ -68,12 +68,7 @@ ENTRY (____longjmp_chk)
 
 	/* TODO: need locking?  */
 	/* struct hurd_sigstate * _hurd_self_sigstate (void) */
-#ifdef PIC
-	call    1f
-1:	popl    %ebx
-	addl    $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
-#endif
-	call	JUMPTARGET(_hurd_self_sigstate)
+	call	_hurd_self_sigstate
 	/* TODO: %eax and %eax->sigaltstack are always valid?  */
 
 	testl	$SS_ONSTACK, (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%eax)