https://sourceware.org/bugzilla/show_bug.cgi?id=16794
Alan Modra <amodra at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC|amodra at gmail dot com | Assignee|ccoutant at gmail dot com |amodra at gmail dot com Target Milestone|--- |2.33 Summary|gold doesn't include the |gold ignores R_386_GOTOFF |"implicit addend" when |addend |processing REL relocations | |to mergable sections | --- Comment #11 from Alan Modra <amodra at gmail dot com> --- OK, so my fix wasn't correct since Relocate_functions<32, false>::rel32(view, value) applies the addend again. This would have worked: - elfcpp::Elf_types<32>::Elf_Addr value; - value = (psymval->value(object, 0) - - target->got_plt_section()->address()); - Relocate_functions<32, false>::rel32(view, value); + typedef typename elfcpp::Swap<32, false>::Valtype Valtype; + Valtype* wv = reinterpret_cast<Valtype*>(view); + Valtype addend = elfcpp::Swap<32, false>::readval(wv); + Valtype value = (psymval->value(object, addend) + - target->got_plt_section()->address()); + elfcpp::Swap<32, false>::writeval(wv, value); However, that looks very much like a pcrel32 using object/psymval, thus elfcpp::Elf_types<32>::Elf_Addr reladdr; reladdr = target->got_plt_section()->address(); Relocate_functions<32, false>::pcrel32(view, object, psymval, reladdr); -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils