]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hppa: fix loading of global pointer in _start [BZ #20277]
authorJohn David Anglin <dave.anglin@bell.net>
Tue, 21 Jun 2016 22:35:22 +0000 (18:35 -0400)
committerAurelien Jarno <aurelien@aurel32.net>
Fri, 1 Jul 2016 12:40:09 +0000 (14:40 +0200)
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.

(cherry picked from commit 9765ffa71030efd8bb4f2ea4ed6e020fcb4bb714)

ChangeLog
NEWS
sysdeps/hppa/start.S

index aaba8df21718d01914ecaf3f56107719366a3cd4..3c8315f88f92ea6ae07c35e1dc74b3a0a5370b5c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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  Aurelien Jarno  <aurelien@aurel32.net>
 
        * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Regenerated.
diff --git a/NEWS b/NEWS
index 532cfe2f626d24302dfdfc5e2a77f66f36d582e6..07f3fe8569de35a67cce2835eb2be39fae43e053 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -34,6 +34,7 @@ The following bugs are resolved with this release:
   [19822] libm.so install clobbers old version
   [19879] network: nss_dns: Stack overflow in getnetbyname implementation
     (CVE-2016-3075)
+  [20177] $dp is not initialized correctly in sysdeps/hppa/start.S
 
 \f
 Version 2.23
index 90d4331f5ab9696785d7361d8ff63e69e80d1ee3..b7ab830e9245d60dd4a80f949650c9a49d6bca52 100644 (file)
@@ -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