diff options
author | Olivier Houchard <cognet@FreeBSD.org> | 2021-03-10 18:01:41 +0000 |
---|---|---|
committer | Olivier Houchard <cognet@FreeBSD.org> | 2021-03-10 18:06:42 +0000 |
commit | c328f64d81079bad5064c8a387883df50ab5aaed (patch) | |
tree | 2eb23502d623e3b3f488c10b8b15057f00f17431 | |
parent | 409388cfac49a312034e9397c870e3f81ff90734 (diff) | |
download | src-c328f64d81079bad5064c8a387883df50ab5aaed.tar.gz src-c328f64d81079bad5064c8a387883df50ab5aaed.zip |
arm64: Fix COMPAT_FREEBSD32.
The ENTRY() macro was modified by commit
28d945204ea1014d7de6906af8470ed8b3311335 to add an optional NOP instruction
at the beginning of the function. It is of course an arm64 instruction, so
unsuitable for the 32bits sigcode. So just use EENTRY() instead for
aarch32_sigcode. This should fix receiving signals when running 32bits
binaries on FreeBSD/arm64.
MFC After: 1 week
-rw-r--r-- | sys/arm64/arm64/locore.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index bd013a870e34..f5e6bbd604a5 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -805,7 +805,7 @@ esigcode: szsigcode: .quad esigcode - sigcode -ENTRY(aarch32_sigcode) +EENTRY(aarch32_sigcode) .word 0xe1a0000d // mov r0, sp .word 0xe2800040 // add r0, r0, #SIGF_UC .word 0xe59f700c // ldr r7, [pc, #12] @@ -813,7 +813,7 @@ ENTRY(aarch32_sigcode) .word 0xe59f7008 // ldr r7, [pc, #8] .word 0xef000000 // swi #0 .word 0xeafffffa // b . - 16 -END(aarch32_sigcode) +EEND(aarch32_sigcode) .word SYS_sigreturn .word SYS_exit .align 3 |