From 0a06aa036f3190e941a5bfa0bf63b56507bc85c3 Mon Sep 17 00:00:00 2001 From: Pavel Chupin Date: Thu, 15 Aug 2013 11:50:19 +0400 Subject: [PATCH] Fix R_X86_64_RELATIVE preference for x32 Signed-off-by: Pavel Chupin --- gold/x86_64.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 4f4d612..d54ad9c 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -2742,7 +2742,8 @@ Target_x86_64::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); -- 1.7.11.4