[PATCH v8 05/20] aarch64: Add GCS support to vfork
Yury Khrustalev
yury.khrustalev@arm.com
Tue Jan 14 16:03:13 GMT 2025
From: Szabolcs Nagy <szabolcs.nagy@arm.com>
Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
---
sysdeps/unix/sysv/linux/aarch64/vfork.S | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S
index 27618567f1..d5943a7485 100644
--- a/sysdeps/unix/sysv/linux/aarch64/vfork.S
+++ b/sysdeps/unix/sysv/linux/aarch64/vfork.S
@@ -33,8 +33,13 @@ ENTRY (__vfork)
cmn x0, #4095
b.cs .Lsyscall_error
+ cbz x0, L(child)
RET
-
+L(child):
+ /* Return with indirect branch in the child to support GCS.
+ Compilers insert BTI instruction after vfork() to make
+ sure return via BR works on systems with BTI. */
+ br x30
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)
--
2.39.5
More information about the Libc-alpha
mailing list