diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-09-02 16:58:51 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-10-01 10:37:21 -0300 |
commit | 5e8cfc5d625e6dd000a0371d21d792836ea7951a (patch) | |
tree | e2a29bdaa9808becf58c6bcc1971ff657cf74c38 /sysdeps | |
parent | 49c3682ce18fc283433b759ea606bdc26df6b829 (diff) | |
download | glibc-5e8cfc5d625e6dd000a0371d21d792836ea7951a.zip glibc-5e8cfc5d625e6dd000a0371d21d792836ea7951a.tar.gz glibc-5e8cfc5d625e6dd000a0371d21d792836ea7951a.tar.bz2 |
linux: sparc: Fix clone for LEON/sparcv8 (BZ 31394)
The sparc clone mitigation (faeaa3bc9f76030) added the use of
flushw, which is not support by LEON/sparcv8. As discussed on
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.
Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/clone.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S index c9cf9bb..c84244f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S @@ -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 |