about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2017-07-12 17:41:04 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2017-07-12 17:41:57 +0100
commitcc392d6339e4172aa0cb5bdb2f006b4db5d7b831 (patch)
tree3349310fea5f2137fa55eecee75068e1b5778f72
parent605e6f9f4a4bf39416ac16fad1f41b5a93a0774d (diff)
downloadglibc-cc392d6339e4172aa0cb5bdb2f006b4db5d7b831.tar.gz
glibc-cc392d6339e4172aa0cb5bdb2f006b4db5d7b831.tar.xz
glibc-cc392d6339e4172aa0cb5bdb2f006b4db5d7b831.zip
[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.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/aarch64/dl-machine.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f58debbfc9..2f8f9c606b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-07-12  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* sysdeps/aarch64/dl-machine.h (RTLD_START_1): Change _dl_argv to the
+	hidden __GI__dl_argv symbol.
+
 2016-09-05  Aurelien Jarno  <aurelien@aurel32.net>
 
 	* conform/Makefile (conformtest-header-tests): Pass -I. to $(PERL).
diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
index 282805e396..e86d8b5b63 100644
--- a/sysdeps/aarch64/dl-machine.h
+++ b/sysdeps/aarch64/dl-machine.h
@@ -172,8 +172,8 @@ _dl_start_user:							\n\
 	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\