NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/56487 CVS commit: src/sys

The following reply was made to PR kern/56487; it has been noted by GNATS.

From: "Jason R Thorpe" <>
Subject: PR/56487 CVS commit: src/sys
Date: Sat, 6 Nov 2021 20:42:57 +0000

 Module Name:	src
 Committed By:	thorpej
 Date:		Sat Nov  6 20:42:57 UTC 2021
 Modified Files:
 	src/sys/arch/aarch64/aarch64: netbsd32_machdep.c
 	src/sys/arch/amd64/amd64: netbsd32_machdep.c netbsd32_machdep_16.c
 	src/sys/arch/arm/include: netbsd32_machdep.h
 	src/sys/arch/mips/mips: netbsd32_machdep.c netbsd32_machdep_16.c
 	src/sys/arch/sparc64/sparc64: netbsd32_machdep.c netbsd32_machdep_16.c
 	src/sys/compat/netbsd32: netbsd32.h netbsd32_exec.h netbsd32_signal.c
 Log Message:
 COMPAT_NETBSD32 is all about running the 32-bit flavor of native
 binaries on a 64-bit platform[*], as such:
 - Make the logic about which "sendsig" flavor to call MI (as it is in the
   native 64-bit environment) and follow the same rules as the native 32-bit
 - Make COMPAT_NETBSD32 x COMPAT_16 work the same as it would in the
   native 32-bit environment by providing a netbsd32_sendsig_sigcontext_16_hook,
   rather than overriding the entire sendsig logic with a netbsd32_sendsig_hook.
 - In netbsd32___sigaction_sigtramp(), make sure the compat_netbsd32_16
   module is loaded if the trampoline version specifies a sigcontext style
   handler, otherwise return EINVAL so that libc can try again with siginfo
 [*] ...except for arm32, which uses it to mean "run 32-bit OABI binaries
 from the 32-bit EABI environment".  Doing it this way was arguably a mistake,
 but we are stuck with it for now, so support it by providing a machine-
 dependent override for netbsd32_sendsig() that also disables the corresponding
 logic in netbsd32___sigaction_sigtramp().
 Fixes PR kern/56487.
 To generate a diff of this commit:
 cvs rdiff -u -r1.21 -r1.22 src/sys/arch/aarch64/aarch64/netbsd32_machdep.c
 cvs rdiff -u -r1.139 -r1.140 src/sys/arch/amd64/amd64/netbsd32_machdep.c
 cvs rdiff -u -r1.6 -r1.7 src/sys/arch/amd64/amd64/netbsd32_machdep_16.c
 cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/include/netbsd32_machdep.h
 cvs rdiff -u -r1.22 -r1.23 src/sys/arch/mips/mips/netbsd32_machdep.c
 cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mips/mips/netbsd32_machdep_16.c
 cvs rdiff -u -r1.116 -r1.117 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
 cvs rdiff -u -r1.5 -r1.6 src/sys/arch/sparc64/sparc64/netbsd32_machdep_16.c
 cvs rdiff -u -r1.137 -r1.138 src/sys/compat/netbsd32/netbsd32.h
 cvs rdiff -u -r1.36 -r1.37 src/sys/compat/netbsd32/netbsd32_exec.h
 cvs rdiff -u -r1.52 -r1.53 src/sys/compat/netbsd32/netbsd32_signal.c
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index