Improve AARCH64 execution

This change fixes bugs in the APE loader. The execve() unit tests are
now enabled for MODE=aarch64. See the README for how you need to have
binfmt_misc configured with Qemu to run them. Apple Silicon bugs have
been fixed too, e.g. tkill() now works.
This commit is contained in:
Justine Tunney 2023-09-11 13:51:37 -07:00
parent 1965d7488e
commit 77a7873057
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
31 changed files with 599 additions and 195 deletions

View file

@ -89,6 +89,8 @@ dos kNtErrorUnexpNetErr ECONNABORTED
dos kNtErrorWorkingSetQuota ENOMEM
dos kNtErrorWriteProtect EACCES
dos kNtErrorWrongDisk EACCES
dos kNtErrorExeMarkedInvalid ENOEXEC
dos kNtErrorExeMachineTypeMismatch ENOEXEC
dos WSAEACCES EACCES
dos WSAEDISCON EPIPE
dos WSAEFAULT EFAULT

View file

@ -0,0 +1,15 @@
// generated by libc/sysv/dos2errno.sh
#include "libc/nt/errors.h"
#ifndef __x86_64__
.end
#endif
.macro .e doscode systemv
.short \doscode
.long \systemv
.endm
.section .sort.rodata.dos2errno.2,"a",@progbits
.globl kDos2Errno.ENOEXEC
.type kDos2Errno.ENOEXEC,@object
kDos2Errno.ENOEXEC:
.e kNtErrorExeMarkedInvalid,ENOEXEC
.e kNtErrorExeMachineTypeMismatch,ENOEXEC