diff options
author | John David Anglin <dave.anglin@bell.net> | 2016-06-21 18:35:22 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2016-06-30 11:37:08 -0400 |
commit | 9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714 (patch) | |
tree | 311ba80e9ba72fbae05c6a0bf8a7ad8a5dc6fb94 | |
parent | 13efa86ece61bf84daca50cab30db1b0902fe2db (diff) | |
download | glibc-9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714.tar glibc-9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714.tar.gz glibc-9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714.tar.bz2 glibc-9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714.zip |
hppa: fix loading of global pointer in _start [BZ #20277]
The patched change fixes a regression for executables compiled with the
-p option and linked with gcrt1.o. The executables crash on startup.
This regression was introduced in 2.22 and was noticed in the gcc testsuite.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/hppa/start.S | 2 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2016-06-30 John David Anglin <danglin@gcc.gnu.org> + + [BZ #20277] + * sysdeps/hppa/start.S (_start): Correct loading of global pointer + when SHARED is defined. + 2016-06-30 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/x86/cpu-features.h (bit_arch_Prefer_ERMS): New. diff --git a/sysdeps/hppa/start.S b/sysdeps/hppa/start.S index 90d4331f5a..b7ab830e92 100644 --- a/sysdeps/hppa/start.S +++ b/sysdeps/hppa/start.S @@ -131,8 +131,10 @@ _start: stw %sp, -60(%sp) #ifdef SHARED + /* load global */ addil LT'.Lp__global, %r19 ldw RT'.Lp__global(%r1), %dp + ldw 0(%dp), %dp #else /* load global */ ldil L%$global$, %dp |