public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* RELLEB relocation format for ELF
@ 2024-03-15  0:16 Fangrui Song
  2024-03-23  1:51 ` CREL relocation format for ELF (was: RELLEB) Fangrui Song
  0 siblings, 1 reply; 7+ messages in thread
From: Fangrui Song @ 2024-03-15  0:16 UTC (permalink / raw)
  To: binutils, gcc; +Cc: Cary Coutant

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.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-03-29  7:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-15  0:16 RELLEB relocation format for ELF Fangrui Song
2024-03-23  1:51 ` CREL relocation format for ELF (was: RELLEB) Fangrui Song
2024-03-28  7:43   ` Fangrui Song
2024-03-28  9:23     ` CREL relocation format for ELF Jan Beulich
2024-03-29  7:24       ` Fangrui Song
2024-03-28 13:04   ` CREL relocation format for ELF (was: RELLEB) Alan Modra
2024-03-28 16:26     ` Fangrui Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).