diff options
Diffstat (limited to 'gold/x86_64.cc')
-rw-r--r-- | gold/x86_64.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gold/x86_64.cc b/gold/x86_64.cc index dca60222715..5bf78fdef7f 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -2742,7 +2742,8 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab, reloc.get_r_offset(), reloc.get_r_addend()); } - else if (r_type == elfcpp::R_X86_64_64 + else if (((size == 64 && r_type == elfcpp::R_X86_64_64) + || (size == 32 && r_type == elfcpp::R_X86_64_32)) && gsym->can_use_relative_reloc(false)) { Reloc_section* rela_dyn = target->rela_dyn_section(layout); |