about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-11-09 11:31:04 +0100
committerFlorian Weimer <fweimer@redhat.com>2020-11-10 15:28:14 +0100
commitc6e794640c324db37038c6a8606f3f5f8903250b (patch)
tree5f0d9c9e34331f0fe5085f15266bc1a33debb908
parent70ee5e8b573f76745760dd6b75f705590fc1923a (diff)
downloadglibc-c6e794640c324db37038c6a8606f3f5f8903250b.tar.gz
glibc-c6e794640c324db37038c6a8606f3f5f8903250b.tar.xz
glibc-c6e794640c324db37038c6a8606f3f5f8903250b.zip
aarch64: Add unwind information to _start (bug 26853)
This adds CFI directives which communicate that the stack ends
with this function.

Fixes bug 26853.

(cherry picked from commit 5edf3d9fd6efe06fda37b2a460e60690a90457a4)
-rw-r--r--NEWS1
-rw-r--r--sysdeps/aarch64/start.S7
2 files changed, 4 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 3030735839..d2a484462b 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,7 @@ The following bugs are resolved with this release:
   [26637] libc: semctl SEM_STAT_ANY fails to pass the buffer specified
     by the caller to the kernel
   [26639] libc: msgctl IPC_INFO and MSG_INFO return garbage
+  [26853] aarch64: Missing unwind information in statically linked startup code
 
 Version 2.32
 
diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
index 75393e1c18..108f602721 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -43,11 +43,9 @@
  */
 
 	.text
-	.globl _start
-	.type _start,#function
-_start:
-	BTI_C
+ENTRY(_start)
 	/* Create an initial frame with 0 LR and FP */
+	cfi_undefined (x30)
 	mov	x29, #0
 	mov	x30, #0
 
@@ -103,6 +101,7 @@ _start:
 __wrap_main:
 	b	main
 #endif
+END(_start)
 
 	/* Define a symbol for the first piece of initialized data.  */
 	.data