linux: sparc: Fix clone for LEON/sparcv8 (BZ 31394)
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Build passed
|
redhat-pt-bot/TryBot-32bit |
success
|
Build for i686
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Test passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Test passed
|
Commit Message
The sparc clone mitigation (faeaa3bc9f76030) added the use of
flushw, which is not support by LEON/sparcv8. As discussed in
the libc-alpha, 'ta 3' is a working alternative [1].
[1] https://sourceware.org/pipermail/libc-alpha/2024-August/158905.html
Checked with a build for sparcv8-linux-gnu targetting leon.
---
sysdeps/unix/sysv/linux/sparc/sparc32/clone.S | 4 ++++
1 file changed, 4 insertions(+)
@@ -29,7 +29,11 @@
ENTRY (__clone)
save %sp,-96,%sp
save %sp,-96,%sp
+#ifdef __sparcv9
flushw
+#else
+ ta 3
+#endif
restore
cfi_def_cfa_register(%fp)
cfi_window_save