diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2017-09-30 19:02:57 -0400 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2017-09-30 19:02:57 -0400 |
commit | 388784cfddc20ada56d3e52f830d6445b14aa3af (patch) | |
tree | 70986acb16f4c3bef0101e42c06bb9e4c004c378 | |
parent | 2000067a4be0dc8a70f6d3704a9e8388eb9066c9 (diff) | |
download | glibc-388784cfddc20ada56d3e52f830d6445b14aa3af.zip glibc-388784cfddc20ada56d3e52f830d6445b14aa3af.tar.gz glibc-388784cfddc20ada56d3e52f830d6445b14aa3af.tar.bz2 |
Fix hppa text relocations in libc.so
[BZ libc/22165]
* sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Use PIC
code to load address of __getcontext_ret when generating PIC code.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/hppa/getcontext.S | 5 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,9 @@ +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. + 2017-09-30 H.J. Lu <hongjiu.lu@intel.com> * elf/Makefile (tests-static-internal): Add diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S index 68a74a0..b201d8f 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. */ |