aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2016-08-24 10:51:33 +0000
committerEd Schouten <ed@FreeBSD.org>2016-08-24 10:51:33 +0000
commit22f2f875ad5dc8e2a0474a3713022df478577603 (patch)
treed8c827c222046d8ff6591f23b555b6d1ad3df6a1 /sbin
parent3b36d1e469d42a25c74051e00940408c8b905a93 (diff)
downloadsrc-22f2f875ad5dc8e2a0474a3713022df478577603.tar.gz
src-22f2f875ad5dc8e2a0474a3713022df478577603.zip
Make execution of 32-bit CloudABI executables work on amd64.
A nice thing about requiring a vDSO is that it makes it incredibly easy to provide full support for running 32-bit processes on 64-bit systems. Instead of letting the kernel be responsible for composing/decomposing 64-bit arguments across multiple registers/stack slots, all of this can now be done in the vDSO. This means that there is no need to provide duplicate copies of certain system calls, like the sys_lseek() and freebsd32_lseek() we have for COMPAT_FREEBSD32. This change imports a new vDSO from the CloudABI repository that has automatically generated code in it that copies system call arguments into a buffer, padding them to eight bytes and zero-extending any pointers/size_t arguments. After returning from the kernel, it does the inverse: extracting return values, in the process truncating pointers/size_t values to 32 bits. Obtained from: https://github.com/NuxiNL/cloudabi
Notes
Notes: svn path=/head/; revision=304744
Diffstat (limited to 'sbin')
0 files changed, 0 insertions, 0 deletions