mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-28 15:28:30 +00:00
Loaders rewrite argv[0] for old binaries (#1170)
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.
This commit is contained in:
parent
57c0b065c8
commit
7d31fc311a
5 changed files with 27 additions and 3 deletions
|
@ -85,6 +85,10 @@
|
|||
#define EM_RISCV 243
|
||||
#define EM_BPF 247
|
||||
|
||||
/* the ape flag, "lol cat 5" */
|
||||
#define EF_APE_MODERN 0x101ca75
|
||||
#define EF_APE_MODERN_MASK 0x1ffffff
|
||||
|
||||
#define GRP_COMDAT 1
|
||||
#define STN_UNDEF 0
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue