Do no use .cfi_negate_ra_state within the assembly on Arm64
Compiling openzfs on aarch64 with gcc-8 and gcc-9 is failing currently. See issue #14965 for deeper context. On platforms without pointer authentication, .cfi_negate_ra_state can be defined to a no-op: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/aarch64-tdep.c#l1413 I have tested this on Arm64 FreeBSD 13.2 and AlmaLinux-8. Reviewed-by: Andrew Turner <andrew.turner4@arm.com> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Closes #14965 Closes #15784
This commit is contained in:
parent
c6da985e28
commit
90ba19eb7b
|
@ -32,6 +32,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__aarch64__)
|
#if defined(__aarch64__)
|
||||||
|
|
||||||
|
/* make gcc <= 9 happy */
|
||||||
|
#if LD_VERSION >= 233010000
|
||||||
|
#define CFI_NEGATE_RA_STATE .cfi_negate_ra_state
|
||||||
|
#else
|
||||||
|
#define CFI_NEGATE_RA_STATE
|
||||||
|
#endif
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.section .note.gnu.property,"a",@note
|
.section .note.gnu.property,"a",@note
|
||||||
.p2align 3
|
.p2align 3
|
||||||
|
@ -51,7 +59,7 @@
|
||||||
zfs_blake3_compress_in_place_sse2:
|
zfs_blake3_compress_in_place_sse2:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
hint #25
|
hint #25
|
||||||
.cfi_negate_ra_state
|
CFI_NEGATE_RA_STATE
|
||||||
sub sp, sp, #96
|
sub sp, sp, #96
|
||||||
stp x29, x30, [sp, #64]
|
stp x29, x30, [sp, #64]
|
||||||
add x29, sp, #64
|
add x29, sp, #64
|
||||||
|
@ -555,7 +563,7 @@ compress_pre:
|
||||||
zfs_blake3_compress_xof_sse2:
|
zfs_blake3_compress_xof_sse2:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
hint #25
|
hint #25
|
||||||
.cfi_negate_ra_state
|
CFI_NEGATE_RA_STATE
|
||||||
sub sp, sp, #96
|
sub sp, sp, #96
|
||||||
stp x29, x30, [sp, #64]
|
stp x29, x30, [sp, #64]
|
||||||
add x29, sp, #64
|
add x29, sp, #64
|
||||||
|
@ -608,7 +616,7 @@ zfs_blake3_compress_xof_sse2:
|
||||||
zfs_blake3_hash_many_sse2:
|
zfs_blake3_hash_many_sse2:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
hint #25
|
hint #25
|
||||||
.cfi_negate_ra_state
|
CFI_NEGATE_RA_STATE
|
||||||
stp d15, d14, [sp, #-160]!
|
stp d15, d14, [sp, #-160]!
|
||||||
stp d13, d12, [sp, #16]
|
stp d13, d12, [sp, #16]
|
||||||
stp d11, d10, [sp, #32]
|
stp d11, d10, [sp, #32]
|
||||||
|
|
|
@ -32,6 +32,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__aarch64__)
|
#if defined(__aarch64__)
|
||||||
|
|
||||||
|
/* make gcc <= 9 happy */
|
||||||
|
#if LD_VERSION >= 233010000
|
||||||
|
#define CFI_NEGATE_RA_STATE .cfi_negate_ra_state
|
||||||
|
#else
|
||||||
|
#define CFI_NEGATE_RA_STATE
|
||||||
|
#endif
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.section .note.gnu.property,"a",@note
|
.section .note.gnu.property,"a",@note
|
||||||
.p2align 3
|
.p2align 3
|
||||||
|
@ -51,7 +59,7 @@
|
||||||
zfs_blake3_compress_in_place_sse41:
|
zfs_blake3_compress_in_place_sse41:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
hint #25
|
hint #25
|
||||||
.cfi_negate_ra_state
|
CFI_NEGATE_RA_STATE
|
||||||
sub sp, sp, #96
|
sub sp, sp, #96
|
||||||
stp x29, x30, [sp, #64]
|
stp x29, x30, [sp, #64]
|
||||||
add x29, sp, #64
|
add x29, sp, #64
|
||||||
|
@ -565,7 +573,7 @@ compress_pre:
|
||||||
zfs_blake3_compress_xof_sse41:
|
zfs_blake3_compress_xof_sse41:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
hint #25
|
hint #25
|
||||||
.cfi_negate_ra_state
|
CFI_NEGATE_RA_STATE
|
||||||
sub sp, sp, #96
|
sub sp, sp, #96
|
||||||
stp x29, x30, [sp, #64]
|
stp x29, x30, [sp, #64]
|
||||||
add x29, sp, #64
|
add x29, sp, #64
|
||||||
|
|
Loading…
Reference in New Issue