git: c328f64d8107 - main - arm64: Fix COMPAT_FREEBSD32.

Olivier Houchard cognet at FreeBSD.org
Wed Mar 10 18:07:18 UTC 2021


The branch main has been updated by cognet:

URL: https://cgit.FreeBSD.org/src/commit/?id=c328f64d81079bad5064c8a387883df50ab5aaed

commit c328f64d81079bad5064c8a387883df50ab5aaed
Author:     Olivier Houchard <cognet at FreeBSD.org>
AuthorDate: 2021-03-10 18:01:41 +0000
Commit:     Olivier Houchard <cognet at FreeBSD.org>
CommitDate: 2021-03-10 18:06:42 +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
---
 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 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


More information about the dev-commits-src-all mailing list