about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gardet <guillaume.gardet@arm.com>2020-12-14 15:38:22 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2021-01-21 16:04:01 +0000
commitd3cb8f6222a3cb955712b720d7c0c0dba37898f9 (patch)
tree62f3b611a9799651afc0be50d522c279d4a2ee8f
parent082798622d888e2d1b39b0758a0a5f8530a558b2 (diff)
downloadglibc-d3cb8f6222a3cb955712b720d7c0c0dba37898f9.tar.gz
glibc-d3cb8f6222a3cb955712b720d7c0c0dba37898f9.tar.xz
glibc-d3cb8f6222a3cb955712b720d7c0c0dba37898f9.zip
aarch64: fix static PIE start code for BTI [BZ #27068]
A bti c was missing from rcrt1.o which made all -static-pie
binaries fail at program startup on BTI enabled systems.

Fixes bug 27068.

(cherry picked from commit d4136903a29baabeec8987b53081def8b4a49826)
-rw-r--r--sysdeps/aarch64/start.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
index 108f602721..1998ea95d4 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -99,6 +99,7 @@ ENTRY(_start)
 	   because crt1.o and rcrt1.o share code and the later must avoid the
 	   use of GOT relocations before __libc_start_main is called.  */
 __wrap_main:
+	BTI_C
 	b	main
 #endif
 END(_start)