Modernize elfhack
Categories
(Firefox Build System :: General, task)
Tracking
(firefox119 fixed)
| Tracking | Status | |
|---|---|---|
| firefox119 | --- | fixed |
People
(Reporter: glandium, Assigned: glandium)
References
Details
Attachments
(4 external files)
Elfhack is the main reason we're not using lld on Linux/Android shippable builds, because the way it works doesn't go well with how lld lays out ELF binaries. By leveraging the linker itself (BFD and lld both having recently gained the ability to generate the compact relocation info themselves), we can achieve a similar result to what elfhack is doing, while allowing to use lld.
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Comment 1•3 years ago
|
||
| Assignee | ||
Comment 2•3 years ago
|
||
Elfhack acts as a linker, and it uses the elf_header symbol to point
at the ELF header in the injected code that applies relocations.
Both GNU ld and lld expose a __ehdr_start symbol with the same meaning,
so rename the elf_header symbol for compatibility. This will allow to
reuse the code in the upcoming replacement for elfhack.
| Assignee | ||
Comment 3•3 years ago
|
||
Elfhack is the main reason we're not using lld on Linux/Android
shippable builds, because the way it works doesn't go well with how lld
lays out ELF binaries. By leveraging the linker itself (BFD and lld both
having recently gained the ability to generate the compact relocation
info themselves), we can achieve a similar result to what elfhack is
doing, while allowing to use lld.
See more in-depth background on https://glandium.org/blog/?p=4297
| Assignee | ||
Comment 4•3 years ago
|
||
Disabled by default for now.
Comment 6•3 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/462a0de72bb9
https://hg.mozilla.org/mozilla-central/rev/ff6f21fecdbe
https://hg.mozilla.org/mozilla-central/rev/200dd4ded060
https://hg.mozilla.org/mozilla-central/rev/4d62c0c0c7e9
Description
•