This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch release/2.24/master updated. glibc-2.24-40-g658b0ab


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.24/master has been updated
       via  658b0abcff29e817bcb887a6a128aca0226289cd (commit)
      from  4d393a8831fc0ab1b7c29e2d5bafbdbfe2102082 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=658b0abcff29e817bcb887a6a128aca0226289cd

commit 658b0abcff29e817bcb887a6a128aca0226289cd
Author: John David Anglin <dave.anglin@bell.net>
Date:   Mon Feb 20 20:31:57 2017 -0500

    hppa: Fix setting of __libc_stack_end
    
    The binutils package was recently changed to fix -z relro support on hppa.
    See ld/21000 for details:
    https://sourceware.org/bugzilla/show_bug.cgi?id=21000
    
    This exposed a problem with the _dl_start_user function in the RTLD_START
    define.  We need to set __libc_stack_end before it is made read only.  For
    this, we need to define DL_STACK_END.  The offset of 0x160 gives the same
    stack end as the code in _dl_start_user.
    
    A build log with the attached patch is here:
    https://buildd.debian.org/status/fetch.php?pkg=glibc&arch=hppa&ver=2.24-9&stamp=1487639205&raw=0
    
    (cherry picked from commit 5d20a49aaccef5ef7adac93d5ca159f6b7ba0105)

diff --git a/ChangeLog b/ChangeLog
index 1b7d40a..70b45cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-15  John David Anglin  <danglin@gcc.gnu.org>
+
+	* sysdeps/hppa/dl-machine.h (DL_STACK_END): Define.
+	(RTLD_START): Don't record stack end address in _dl_start_user.
+
 2017-01-30  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #21081]
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index 9404211..01bd5bf 100644
--- a/sysdeps/hppa/dl-machine.h
+++ b/sysdeps/hppa/dl-machine.h
@@ -302,6 +302,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 #define ARCH_LA_PLTENTER hppa_gnu_pltenter
 #define ARCH_LA_PLTEXIT hppa_gnu_pltexit
 
+/* Adjust DL_STACK_END to get value we want in __libc_stack_end.  */
+#define DL_STACK_END(cookie) \
+  ((void *) (((long) (cookie)) + 0x160))
+
 /* Initial entry point code for the dynamic linker.
    The C function `_dl_start' is the real entry point;
    its return value is the user program's entry point.  */
@@ -401,11 +405,6 @@ asm (									\
 	/* Save the entry point in %r3. */				\
 "	copy	%ret0,%r3\n"						\
 									\
-	/* Remember the lowest stack address. */			\
-"	addil	LT'__libc_stack_end,%r19\n"				\
-"	ldw	RT'__libc_stack_end(%r1),%r20\n"			\
-"	stw	%sp,0(%r20)\n"						\
-									\
 	/* See if we were called as a command with the executable file	\
 	   name as an extra leading argument. */			\
 "	addil	LT'_dl_skip_args,%r19\n"				\

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                 |    5 +++++
 sysdeps/hppa/dl-machine.h |    9 ++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]