git: 6d91006cd1b5 - stable/13 - arm64: Fix COMPAT_FREEBSD32.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 10 Jan 2022 11:32:57 UTC
The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=6d91006cd1b51409b0c56813e8bacca5c6ece632 commit 6d91006cd1b51409b0c56813e8bacca5c6ece632 Author: Olivier Houchard <cognet@FreeBSD.org> AuthorDate: 2021-03-10 18:01:41 +0000 Commit: Andrew Turner <andrew@FreeBSD.org> CommitDate: 2022-01-10 10:54:19 +0000 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 (cherry picked from commit c328f64d81079bad5064c8a387883df50ab5aaed) --- sys/arm64/arm64/locore.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index c858b3cedc51..d906128ae9dc 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -833,7 +833,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] @@ -841,7 +841,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