[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[glibc] 01/01: debian/patches/arm/cvs-rtld-startup.diff: Fix ld.so segfault on arm64.



This is an automated email from the git hooks/post-receive script.

adconrad pushed a commit to branch sid
in repository glibc.

commit 475f7a3dd052feefe6c4d6919c408afcd8d09dc2
Author: Adam Conrad <adconrad@0c3.net>
Date:   Tue Jul 11 05:34:32 2017 -0600

    debian/patches/arm/cvs-rtld-startup.diff: Fix ld.so segfault on arm64.
---
 debian/changelog                         |  1 +
 debian/patches/arm/cvs-rtld-startup.diff | 24 ++++++++++++++++++++++++
 debian/patches/series                    |  1 +
 3 files changed, 26 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 6fbd76d..2a19f6c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ glibc (2.24-13) UNRELEASED; urgency=medium
 
   [ Adam Conrad ]
   * debian/patches/any/cvs-common-symbols.diff: Fix build with newer binutils.
+  * debian/patches/arm/cvs-rtld-startup.diff: Fix ld.so segfault on arm64.
 
  -- Aurelien Jarno <aurel32@debian.org>  Mon, 19 Jun 2017 17:36:36 +0200
 
diff --git a/debian/patches/arm/cvs-rtld-startup.diff b/debian/patches/arm/cvs-rtld-startup.diff
new file mode 100644
index 0000000..917d489
--- /dev/null
+++ b/debian/patches/arm/cvs-rtld-startup.diff
@@ -0,0 +1,24 @@
+commit e9177fba13549a8e2a6232f46080e5c6d3e467b1
+Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
+Date:   Wed Jun 21 13:47:07 2017 +0100
+
+    [AArch64] Use hidden __GI__dl_argv in rtld startup code
+    
+    We rely on the symbol being locally defined so using extern symbol
+    is not correct and the linker may complain about the relocations.
+
+diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
+index 02fab04f40..60472036f5 100644
+--- a/sysdeps/aarch64/dl-machine.h
++++ b/sysdeps/aarch64/dl-machine.h
+@@ -172,8 +172,8 @@
+ 	cmp	x0, #0						\n\
+ 	bne	1b						\n\
+ 	// Update _dl_argv					\n\
+-	adrp	x3, _dl_argv					\n\
+-	str	x2, [x3, #:lo12:_dl_argv]			\n\
++	adrp	x3, __GI__dl_argv				\n\
++	str	x2, [x3, #:lo12:__GI__dl_argv]			\n\
+ .L_done_stack_adjust:						\n\
+ 	// compute envp						\n\
+ 	add	x3, x2, x1, lsl #3				\n\
diff --git a/debian/patches/series b/debian/patches/series
index 8c3bd83..b42af9a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -46,6 +46,7 @@ arm/local-soname-hack.diff
 arm/local-vfp-sysdeps.diff
 arm/unsubmitted-ldso-multilib.diff
 arm/local-arm-futex.diff
+arm/cvs-rtld-startup.diff
 
 hppa/local-inlining.diff
 hppa/local-elf-make-cflags.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: