aboutsummaryrefslogtreecommitdiff
path: root/gold/arm.cc
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2009-12-17 00:00:26 +0000
committerDoug Kwan <dougkwan@google.com>2009-12-17 00:00:26 +0000
commitd6344fb5ba8bfe0219f91c52e296707dbcdb07e3 (patch)
tree2a6c65ec60d4c8c400166139e1dc436368182b1f /gold/arm.cc
parent21f8908e380ed50e16a153aae25ba9cffd6f28af (diff)
downloadgdb-d6344fb5ba8bfe0219f91c52e296707dbcdb07e3.zip
gdb-d6344fb5ba8bfe0219f91c52e296707dbcdb07e3.tar.gz
gdb-d6344fb5ba8bfe0219f91c52e296707dbcdb07e3.tar.bz2
2009-12-16 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relobj::scan_sections_for_stubs): Exclude ICF-eliminated sections. * object.cc (Sized_relobj::do_finalize_local_symbols): Handle relaxed input sections. * output.cc (Output_section::find_relaxed_input_section): Change return type to Output_relaxed_input_section pointer. Adjust code for new type of relaxed_input_section_map_. * output.h (Output_section::find_relaxed_input_section): Change return type to Output_relaxed_input_section pointer. (Output_section::Output_relaxed_input_section_by_input_section_map): New type. (Output_section::relaxed_input_section_map_): Change type to Output_section::Output_relaxed_input_section_by_input_section_map. * symtab.cc (Symbol_table::compute_final_value): Handle relaxed input section.
Diffstat (limited to 'gold/arm.cc')
-rw-r--r--gold/arm.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/gold/arm.cc b/gold/arm.cc
index 03cc697..b02afbe 100644
--- a/gold/arm.cc
+++ b/gold/arm.cc
@@ -3645,10 +3645,12 @@ Arm_relobj<big_endian>::scan_sections_for_stubs(
}
Output_section* os = out_sections[index];
- if (os == NULL)
+ if (os == NULL
+ || symtab->is_section_folded(this, index))
{
// This relocation section is against a section which we
- // discarded.
+ // discarded or if the section is folded into another
+ // section due to ICF.
continue;
}
Arm_address output_offset = this->get_output_section_offset(index);