Fix bug with relocation addends and merge sections with --icf.
authorCary Coutant <ccoutant@gmail.com>
Wed, 25 Apr 2018 04:57:37 +0000 (21:57 -0700)
committerCary Coutant <ccoutant@gmail.com>
Wed, 25 Apr 2018 05:13:56 +0000 (22:13 -0700)
commit651d16203867f8013a0f78a2f2e24df8c02d1377
tree80412e416cf3ffc70a81030fb558eae8f233dda0
parent2ac93be706418f3b2aebeb22159a328023faed52
Fix bug with relocation addends and merge sections with --icf.

During --icf processing, gold was incorrectly processing the relocation
addend for references to items in a merge section. PC-relative references
and other forms of reference with a biased base address require a
non-section local symbol, where the addend is purely the bias.

gold/
PR gold/20642
PR gold/22820
* gc.h (gc_process_relocs): Flag STT_SECTION symbols in symvec.
* icf.cc (get_section_contents): For merge sections, ignore the
addend for relocations against non-section symbols.
gold/ChangeLog
gold/gc.h
gold/icf.cc