Summary: | binutils: Support CREL relocation format | ||
---|---|---|---|
Product: | binutils | Reporter: | Fangrui Song <i> |
Component: | binutils | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | NEW --- | ||
Severity: | normal | CC: | jremus, oset, sam, trass3r |
Priority: | P2 | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Last reconfirmed: |
Description
Fangrui Song
2024-03-12 04:27:24 UTC
The format was tentatively named RELLEB. As I refine the original pure LEB-based format, “RELLEB” might not be the most fitting name. I have switched to SHT_CREL/DT_CREL/.crel and updated https://maskray.me/blog/2024-03-09-a-compact-relocation-format-for-elf https://groups.google.com/g/generic-abi/c/yb0rjw56ORw/m/eiBcYxSfAQAJ build | format | `.o size` | `size(.rel*)` | .o size decrease --------------------------------+-----------------+-------------+---------------+----------------- -O3 | RELA | 136012504 | 28235448 | -O3 | CREL | 111583312 | 3806234 | 18.0% aarch64 -O3 | RELA | 124965808 | 25855800 | aarch64 -O3 | CREL | 102529784 | 3388307 | 18.0% riscv64 -O3 | RELA | 227189744 | 91396344 | riscv64 -O3 | CREL | 149343352 | 13549699 | 34.3% -O1 -g | RELA | 1506173760 | 340965576 | -O1 -g | CREL | 1202445768 | 37237274 | 20.2% -O3 -g -gpubnames -gsplit-dwarf | RELA | 549003848 | 104227128 | -O3 -g -gpubnames -gsplit-dwarf | CREL | 459768736 | 14992114 | 16.3% Sounds very interesting. Do you have binutils diff/patch to test it? I mean, compiling llvm takes hours, and compiling binutils takes minutes. That's 'subtle' difference. |