[committed] hppa: Fix hppa text relocations in libc.so

Message ID 3F418E69-2119-4C23-93F9-CD37FF2C57C1@bell.net
State Committed
Headers

Commit Message

John David Anglin Sept. 30, 2017, 11:13 p.m. UTC
  The attached change fixes elf/check-textrel.  We need to use PIC code to load the
address of __getcontext_ret when generating PIC code.

Committed to master.

Dave
--
John David Anglin	dave.anglin@bell.net
2017-09-30  John David Anglin  <danglin@gcc.gnu.org>

	[BZ libc/22165]
	* sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Use PIC
	code to load address of __getcontext_ret when generating PIC code.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
index 68a74a0b7e..b201d8fda2 100644
--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -145,8 +145,13 @@  ENTRY(__getcontext)
 	stw	%r4, oR24(%r26)
 	stw	%r5, oR25(%r26)
 	stw	%r6, oR26(%r26)
+#ifdef PIC
+	addil	LT%__getcontext_ret, %r19
+	ldw     RT%__getcontext_ret(%r1), %r1
+#else
 	ldil	L%__getcontext_ret, %r1
 	ldo     R%__getcontext_ret(%r1), %r1
+#endif
 	stw	%r1, oR2(%r26)
 
 	/* Save the current signal mask.  */