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 master updated. glibc-2.25-120-g5d20a49


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, master has been updated
       via  5d20a49aaccef5ef7adac93d5ca159f6b7ba0105 (commit)
      from  3ab2021feae3b5ae6ef0a7fd30eeef2cfa688a17 (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=5d20a49aaccef5ef7adac93d5ca159f6b7ba0105

commit 5d20a49aaccef5ef7adac93d5ca159f6b7ba0105
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

diff --git a/ChangeLog b/ChangeLog
index 48d285f..f8b2e60 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-03-15  Alexey Neyman  <stilor@att.net>
 
 	[BZ #21088]
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index 339c7bb..787b95f 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]