diff --git a/lib/csu/aarch64/crt1_s.S b/lib/csu/aarch64/crt1_s.S
--- a/lib/csu/aarch64/crt1_s.S
+++ b/lib/csu/aarch64/crt1_s.S
@@ -30,6 +30,8 @@
  */
 
 #include <machine/asm.h>
+#include <sys/elf_common.h>
+
 	/*
 	 * The program entry point
 	 * void _start(char **ap, void (*cleanup)(void)) __dead2
@@ -62,3 +64,5 @@
 END(_start)
 
 	.section .note.GNU-stack,"",@progbits
+
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
diff --git a/lib/csu/aarch64/crti.S b/lib/csu/aarch64/crti.S
--- a/lib/csu/aarch64/crti.S
+++ b/lib/csu/aarch64/crti.S
@@ -28,11 +28,14 @@
  */
 
 #include <machine/asm.h>
+#include <sys/elf_common.h>
+
 	.section .init,"ax",@progbits
 	.align 4
 	.globl	_init
 	.type	_init,@function
 _init:
+	PAC_LR_SIGN
 	stp	x29, x30, [sp, #-16]!
 	mov	x29, sp
 
@@ -41,6 +44,8 @@
 	.globl	_fini
 	.type	_fini,@function
 _fini:
+	PAC_LR_SIGN
 	stp	x29, x30, [sp, #-16]!
 	mov	x29, sp
 
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
diff --git a/lib/csu/aarch64/crtn.S b/lib/csu/aarch64/crtn.S
--- a/lib/csu/aarch64/crtn.S
+++ b/lib/csu/aarch64/crtn.S
@@ -28,13 +28,19 @@
  */
 
 #include <machine/asm.h>
+#include <sys/elf_common.h>
+
 	.section .init,"ax",@progbits
 	ldp	x29, x30, [sp], #16
+	PAC_LR_AUTH
 	ret
 
 
 	.section .fini,"ax",@progbits
 	ldp	x29, x30, [sp], #16
+	PAC_LR_AUTH
 	ret
 
 	.section .note.GNU-stack,"",%progbits
+
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
diff --git a/lib/csu/common/crtbrand.S b/lib/csu/common/crtbrand.S
--- a/lib/csu/common/crtbrand.S
+++ b/lib/csu/common/crtbrand.S
@@ -47,3 +47,8 @@
 4:
 
 	.section .note.GNU-stack,"",%progbits
+
+#ifdef __aarch64__
+/* This is needed in all objects for BTI to be used in the linked elf file */
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
+#endif
diff --git a/lib/csu/common/feature_note.S b/lib/csu/common/feature_note.S
--- a/lib/csu/common/feature_note.S
+++ b/lib/csu/common/feature_note.S
@@ -40,3 +40,8 @@
 4:
 
 	.section .note.GNU-stack,"",%progbits
+
+#ifdef __aarch64__
+/* This is needed in all objects for BTI to be used in the linked elf file */
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
+#endif
diff --git a/lib/csu/common/ignore_init_note.S b/lib/csu/common/ignore_init_note.S
--- a/lib/csu/common/ignore_init_note.S
+++ b/lib/csu/common/ignore_init_note.S
@@ -41,3 +41,8 @@
 4:
 
 	.section .note.GNU-stack,"",%progbits
+
+#ifdef __aarch64__
+/* This is needed in all objects for BTI to be used in the linked elf file */
+GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
+#endif