aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Houchard <cognet@FreeBSD.org>2021-03-10 18:01:41 +0000
committerOlivier Houchard <cognet@FreeBSD.org>2021-03-10 18:06:42 +0000
commitc328f64d81079bad5064c8a387883df50ab5aaed (patch)
tree2eb23502d623e3b3f488c10b8b15057f00f17431
parent409388cfac49a312034e9397c870e3f81ff90734 (diff)
downloadsrc-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.S4
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