From: Doug Kwan Date: Sat, 30 Jan 2010 00:01:12 +0000 (+0000) Subject: 2010-01-29 Doug Kwan X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c9a2c125541dc97124aaaea15b8b596d36b355f3;p=binutils-gdb.git 2010-01-29 Doug Kwan * arm.cc (Target_arm::Scan::global): General PLTs for the same set of relocation types as ld. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 98b7dece8f5..eff93053a10 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2010-01-29 Doug Kwan + + * arm.cc (Target_arm::Scan::global): General PLTs for the same set + of relocation types as ld. + 2010-01-29 Doug Kwan * arm.cc (Arm_relocate_functions::arm_branch_common) Change visibility diff --git a/gold/arm.cc b/gold/arm.cc index 65bebaa1e53..7736fa6b15f 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -6792,9 +6792,6 @@ Target_arm::Scan::global(Symbol_table* symtab, break; case elfcpp::R_ARM_REL32: - break; - - case elfcpp::R_ARM_PREL31: { // Make a dynamic relocation if necessary. int flags = Symbol::NON_PIC_REF; @@ -6821,26 +6818,9 @@ Target_arm::Scan::global(Symbol_table* symtab, case elfcpp::R_ARM_THM_JUMP19: case elfcpp::R_ARM_CALL: case elfcpp::R_ARM_THM_CALL: - - if (Target_arm::Scan::symbol_needs_plt_entry(gsym)) - target->make_plt_entry(symtab, layout, gsym); - else - { - // Check to see if this is a function that would need a PLT - // but does not get one because the function symbol is untyped. - // This happens in assembly code missing a proper .type directive. - if ((!gsym->is_undefined() || parameters->options().shared()) - && !parameters->doing_static_link() - && gsym->type() == elfcpp::STT_NOTYPE - && (gsym->is_from_dynobj() - || gsym->is_undefined() - || gsym->is_preemptible())) - gold_error(_("%s is not a function."), - gsym->demangled_name().c_str()); - } - break; - case elfcpp::R_ARM_PLT32: + case elfcpp::R_ARM_PREL31: + case elfcpp::R_ARM_PC24: // If the symbol is fully resolved, this is just a relative // local reloc. Otherwise we need a PLT entry. if (gsym->final_value_is_known())