mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-03-04 16:06:23 +00:00
The "no modify self" variant of Actually Portable Executable is now supported on all platforms. If you use `$(APE_NO_MODIFY_SELF)` then ld.bfd will embed a 4096 byte ELF binary and a 4096 byte Macho file which are installed on the fly to ${TMPDIR:-/tmp}, which enables us launch the executable, without needing to copy the whole executable To prevent it from copying a tiny executable to your temp directory you need to install the `ape` command (renamed from ape-loader), to a system path. For example: # FreeBSD / NetBSD / OpenBSD make -j8 o//ape/ape cp o//ape/ape /usr/bin/ape # Mac OS # make -j8 o//ape/ape.macho curl https://justine.lol/ape.macho >/usr/bin/ape chmod +x /usr/bin/ape On Linux you can get even more performance with the new binfmt_misc support which makes launching non-modifying APE binaries as fast as launching ELF executables. Running the following command: # Linux ape/apeinstall.sh Will copy APE loader to /usr/bin/ape and register with binfmt_misc Lastly, this change also fixes a really interesting race condition with OpenBSD thread joining. |
||
---|---|---|
.. | ||
a64l_test.c | ||
blake2_test.c | ||
blake2b256_tests.txt | ||
bsr_test.c | ||
bzero_test.c | ||
classifypath_test.c | ||
crc32c_test.c | ||
crc32z_test.c | ||
getutf16_test.c | ||
highwayhash64_test.c | ||
longsort_test.c | ||
memcasecmp_test.c | ||
memccpy_test.c | ||
memcpy_test.c | ||
memfrob_test.c | ||
memmem_test.c | ||
memmove_test.c | ||
pututf16_test.c | ||
qsort_test.c | ||
regex_test.c | ||
sigset_test.c | ||
str_test.c | ||
strcasecmp_test.c | ||
strcat_test.c | ||
strchr_test.c | ||
strclen_test.c | ||
strcmp_test.c | ||
strcpy_test.c | ||
strlcpy_test.c | ||
strlen_test.c | ||
strpbrk_test.c | ||
strrchr_test.c | ||
strsignal_test.c | ||
strstr_test.c | ||
strtok_r_test.c | ||
strtolower_test.c | ||
test.mk | ||
towupper_test.c | ||
tpenc_test.c | ||
tprecode8to16_test.c | ||
tprecode16to8_test.c | ||
undeflate_test.c | ||
wcsrchr_test.c |