HomePhabricator

Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets
Audit Requiredb497665d98ad

Authored by MaskRay on Aug 2 2020, 6:05 PM.

Description

Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets

This drops a GNU gold workaround and reverts the revert commit rL366708.

Before binutils 2.34, gold -O2 and above did not correctly handle R_386_GOTOFF to
SHF_MERGE|SHF_STRINGS sections: https://sourceware.org/bugzilla/show_bug.cgi?id=16794

From the original review:

... it reduced the size of a big ARM-32 debug image by 33%. It contained ~68M
of relocations symbols out of total ~71M symbols (96% of symbols table was
generated for relocations with symbol).

-Wl,-O2 (and -Wl,-O3) is so rare that we should just lower the
optimization level for LLVM_LINKER_IS_GOLD rather than pessimizing all users.