Describe the feature you'd like supported
Right now it is not possible to determine the target platform from the contents of an ELF. A program compiled against Linux headers looks the same as a programs compiled against Windows ones. This is a problem for projects which need to support loading ELF from both platforms because while the ELF are superficially similar the contents aren't compatible:
There should be a way for toolchains to figure out the platform of an ELF.
Proposed solution
- Add a new ELF section similar to
.license which contains a string that indicates the platform, e.g. windows or linux.
- Somehow set the ELF OS/ABI field to something meaningful.
$ readelf -h testdata/loader-clang-el.elf
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
It would be best if this was coordinated with upstream libbpf somehow.
Additional context
No response
Describe the feature you'd like supported
Right now it is not possible to determine the target platform from the contents of an ELF. A program compiled against Linux headers looks the same as a programs compiled against Windows ones. This is a problem for projects which need to support loading ELF from both platforms because while the ELF are superficially similar the contents aren't compatible:
There should be a way for toolchains to figure out the platform of an ELF.
Proposed solution
.licensewhich contains a string that indicates the platform, e.g.windowsorlinux.It would be best if this was coordinated with upstream libbpf somehow.
Additional context
No response