mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-10-25 10:40:57 +00:00
For this to work, a loader has to be able to tell the difference between an ‘old’ and a ‘new’ binary. This is achieved via a repurposing of ELF’s e_flags field. We previously tried to use the padding in e_ident for it, but binutils was resetting it to zero in e.g. strip. This introduces one new ELF flag for cosmopolitan binaries. It is called `EF_APE_MODERN`. We choose 0x101ca75, "lol cat 5". It should now be safe to install the ape loader binfmt registration with the `P` flag. |
||
|---|---|---|
| .. | ||
| struct | ||
| BUILD.mk | ||
| def.h | ||
| elf.h | ||
| findelfsectionbyname.c | ||
| getelfprogramheaderaddress.c | ||
| getelfsectionaddress.c | ||
| getelfsectionheaderaddress.c | ||
| getelfsectionname.c | ||
| getelfsectionnamestringtable.c | ||
| getelfsegmentaddress.c | ||
| getelfstring.c | ||
| getelfstringtable.c | ||
| getelfsymbols.c | ||
| getelfsymboltable.c | ||
| iself64binary.c | ||
| iselfsymbolcontent.c | ||
| link.h | ||
| pf2prot.internal.h | ||
| scalar.h | ||
| tinyelf.internal.h | ||