diff options
author | Ian Lance Taylor <iant@google.com> | 2007-10-20 00:33:31 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2007-10-20 00:33:31 +0000 |
commit | df2efe713a06aa0d0aa7dcd7850d97ea9fff85ec (patch) | |
tree | 955396326a9e391b884575fd39640c9db17fbf8c /gold | |
parent | 342dae88a71da570e66113cda581fb7c70b181e3 (diff) | |
download | gdb-df2efe713a06aa0d0aa7dcd7850d97ea9fff85ec.zip gdb-df2efe713a06aa0d0aa7dcd7850d97ea9fff85ec.tar.gz gdb-df2efe713a06aa0d0aa7dcd7850d97ea9fff85ec.tar.bz2 |
Handle PLT32 against local symbols.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/i386.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gold/i386.cc b/gold/i386.cc index e091f18..4532bfd 100644 --- a/gold/i386.cc +++ b/gold/i386.cc @@ -771,6 +771,11 @@ Target_i386::Scan::local(const General_options&, case elfcpp::R_386_PC8: break; + case elfcpp::R_386_PLT32: + // Since we know this is a local symbol, we can handle this as a + // PC32 reloc. + break; + case elfcpp::R_386_GOTOFF: case elfcpp::R_386_GOTPC: // We need a GOT section. @@ -870,7 +875,6 @@ Target_i386::Scan::local(const General_options&, } break; - case elfcpp::R_386_PLT32: case elfcpp::R_386_32PLT: case elfcpp::R_386_TLS_GD_32: case elfcpp::R_386_TLS_GD_PUSH: @@ -1276,8 +1280,9 @@ Target_i386::Relocate::relocate(const Relocate_info<32, false>* relinfo, break; case elfcpp::R_386_PLT32: - gold_assert(gsym->has_plt_offset() - || gsym->final_value_is_known()); + gold_assert(gsym == NULL + || gsym->has_plt_offset() + || gsym->final_value_is_known()); Relocate_functions<32, false>::pcrel32(view, object, psymval, address); break; |