Modernize elfhack
Categories
(Firefox Build System :: General, task)
Tracking
(firefox119 fixed)
Tracking | Status | |
---|---|---|
firefox119 | --- | fixed |
People
(Reporter: glandium, Assigned: glandium)
References
Details
Attachments
(4 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•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•1 year ago
|
||
Assignee | ||
Comment 2•1 year 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•1 year 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•1 year ago
|
||
Disabled by default for now.
Comment 6•1 year 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
•