Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys
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
environment.
- 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
style.
[*] ...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