diff options
author | Ed Schouten <ed@FreeBSD.org> | 2016-08-24 10:51:33 +0000 |
---|---|---|
committer | Ed Schouten <ed@FreeBSD.org> | 2016-08-24 10:51:33 +0000 |
commit | 22f2f875ad5dc8e2a0474a3713022df478577603 (patch) | |
tree | d8c827c222046d8ff6591f23b555b6d1ad3df6a1 /sbin | |
parent | 3b36d1e469d42a25c74051e00940408c8b905a93 (diff) | |
download | src-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