The relocation formats REL and RELA for ELF are inefficient. In a release build of Clang for x86-64, .rela.* sections consume a significant portion (approximately 20.9%) of the file size.
I propose RELLEB, a new format offering significant file size reductions: 17.2% (x86-64), 16.5% (aarch64), and even 32.4% (riscv64)! Your thoughts on RELLEB are welcome! Detailed analysis: https://maskray.me/blog/2024-03-09-a-compact-relocation-format-for-elf generic ABI (ELF specification): https://groups.google.com/g/generic-abi/c/yb0rjw56ORw binutils feature request: https://sourceware.org/bugzilla/show_bug.cgi?id=31475 LLVM: https://discourse.llvm.org/t/rfc-relleb-a-compact-relocation-format-for-elf/77600 Implementation primarily involves binutils changes. Any volunteers? For GCC, a driver option like -mrelleb in my Clang prototype would be needed. The option instructs the assembler to use RELLEB.