about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2017-06-21 13:47:07 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2017-06-21 14:54:11 +0100
commite9177fba13549a8e2a6232f46080e5c6d3e467b1 (patch)
tree1033b0bbd28193f675a116852d51c4d89b2125fe
parent76b8266f990a2912f42d1b7050840e8c7f14f2c2 (diff)
downloadglibc-e9177fba13549a8e2a6232f46080e5c6d3e467b1.tar.gz
glibc-e9177fba13549a8e2a6232f46080e5c6d3e467b1.tar.xz
glibc-e9177fba13549a8e2a6232f46080e5c6d3e467b1.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 2cd20ad38d..7371bcbd83 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-21  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* sysdeps/aarch64/dl-machine.h (RTLD_START_1): Change _dl_argv to the
+	hidden __GI__dl_argv symbol.
+
 2017-06-21  Florian Weimer  <fweimer@redhat.com>
 
 	* sysdeps/posix/getaddrinfo.c (gaih_inet): Call __inet_pton_length
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
@@ -194,8 +194,8 @@ _dl_start_user:								\n\
 	cmp	" PTR "0, #0						\n\
 	bne	1b							\n\
 	// Update _dl_argv						\n\
-	adrp	x3, _dl_argv						\n\
-	str	" PTR "2, [x3, #:lo12:_dl_argv]				\n\
+	adrp	x3, __GI__dl_argv					\n\
+	str	" PTR "2, [x3, #:lo12:__GI__dl_argv]			\n\
 .L_done_stack_adjust:							\n\
 	// compute envp							\n\
 	add	" PTR "3, " PTR "2, " PTR "1, lsl #" PTR_SIZE_LOG "	\n\