cosmopolitan/examples
Justine Tunney 5bd22aef12
Experiment with supporting Windows Arm64 natively
So far I haven't found any way to run native Arm64 code on Windows Arm64
without using MSVC. When I build a PE binary from scratch that should be
a valid Windows Arm64 program, the OS refuses to run it. Possibly due to
requiring additional content like XML manifests or relocation or control
flow integrity data that isn't normally required on x64. I've also tried
using VirtualAlloc2() to JIT an Arm64 native function, but VirtualAlloc2
always fails with invalid parameter. I tried using MSVC to create an ARM
DLL that my x64 emulated program can link at runtime, to pass a function
pointer with ARM code, but LoadLibrary() rejects ARM DLLs as invalid exe

The only option left, is likely to write a new program like ape/ape-m1.c
which can be compiled by MSVC to load and run an AARCH64 ELF executable.
The emulated x64 binary would detect emulation using IsWow64Process2 and
then drop the loader executable in a temporary folder, and re-launch the
original executable, using the Arm64 segments of the cosmocc fat binary.
2024-08-16 06:43:59 -07:00
..
package Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
pyapp Stop using .com extension in monorepo 2024-03-03 03:12:19 -08:00
pylife Stop using .com extension in monorepo 2024-03-03 03:12:19 -08:00
blas.cc Remove bad defines from early days of project 2024-07-24 12:11:21 -07:00
BUILD.mk Experiment with supporting Windows Arm64 natively 2024-08-16 06:43:59 -07:00
clear.c Overhaul process spawning 2023-09-10 08:17:44 -07:00
crashreport.c Improve backtraces 2024-05-30 15:23:11 -07:00
crashreport2.cc Fix a bug in example code 2024-07-19 19:11:28 -07:00
ctrlc.c Fix some additional Windows TTY issues 2023-10-04 02:17:25 -07:00
date.c Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
dlopen.c Fix dlopen() for FreeBSD and NetBSD 2023-11-18 04:35:48 -08:00
env.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
greenbean.c Fix greenbean example 2024-07-07 17:52:33 -07:00
gui.c Make examples folder somewhat more focused 2021-03-05 06:09:12 -08:00
hangman.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
hello.c Remove printf() linking hack 2023-06-17 10:13:50 -07:00
hello2.c Introduce new linker for fat ape binaries 2023-08-11 04:39:19 -07:00
hellolua.c Fix warnings 2023-09-01 20:50:18 -07:00
hellolua.lua Add Hello World example for LUA C API (#97) 2021-03-08 14:15:59 -08:00
helloplus.cc Fix regression with last commit 2024-07-20 16:43:48 -07:00
hiredis.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
kilo.c Fix ctype.h and wctype.h 2024-07-21 15:54:17 -07:00
life.c Always initialize thread local storage 2022-07-19 00:21:46 -07:00
linenoise.c Clean up some code 2023-10-11 11:45:31 -07:00
localtime.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
ls.c Bring back gc() function 2024-01-08 10:26:28 -08:00
nc.c Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
nesemu1.cc Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
nproc.c Make malloc scalable on all platforms 2024-08-15 23:32:53 -07:00
parsefloat.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
pause.c Write more tests and improve kill() on Windows 2023-10-13 04:38:45 -07:00
picol.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
portscan.c Clean up some code 2023-11-16 17:31:07 -08:00
print-struct.c Cull the examples folder 2023-10-11 21:45:32 -07:00
printargs.c Make improvements 2022-04-24 10:06:05 -07:00
rusage.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
script.c Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
script.txt Add script.com and whois.com courtesy of FreeBSD 2022-09-13 20:26:13 -07:00
seq.c Cull the examples folder 2023-10-11 21:45:32 -07:00
setcontext.c Implement swapcontext() and makecontext() 2023-07-02 09:01:44 -07:00
setitimer.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
spawn_bench.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
stackexplorer.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
stat.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
statfs.c Mint APE Loader v1.7 2023-08-17 09:04:50 -07:00
stringbuffer.c Clean up some code 2023-11-16 17:31:07 -08:00
sysconf.c Clean up some code 2023-10-11 11:45:31 -07:00
sysinfo.c Clean up some code 2023-10-11 11:45:31 -07:00
system.c Make improvements 2024-02-12 10:23:00 -08:00
trapping.c Introduce support for trapping math 2024-04-30 13:38:43 -07:00
ttyinfo.c Fix ctype.h and wctype.h 2024-07-21 15:54:17 -07:00
ucontext-sigfpe-recovery.c Cull the examples folder 2023-10-11 21:45:32 -07:00
uname.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
vga.c Mint APE Loader v1.5 2023-07-26 13:54:49 -07:00
vga2.c [metal] Add a uprintf() routine, for non-emergency boot logging (#905) 2023-10-25 14:32:20 -07:00
walk.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
wall.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
whois.c Fix ctype.h and wctype.h 2024-07-21 15:54:17 -07:00