aboutsummaryrefslogtreecommitdiff
path: root/gold/output.h
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/output.h
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/output.h')
-rw-r--r--gold/output.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/gold/output.h b/gold/output.h
index 6631aa1..3b060c8 100644
--- a/gold/output.h
+++ b/gold/output.h
@@ -2599,7 +2599,7 @@ class Output_section : public Output_data
// Find a relaxed input section to an input section in OBJECT
// with index SHNDX. Return NULL if none is found.
- const Output_section_data*
+ const Output_relaxed_input_section*
find_relaxed_input_section(const Relobj* object, unsigned int shndx) const;
// Print merge statistics to stderr.
@@ -3190,6 +3190,12 @@ class Output_section : public Output_data
Input_section_specifier::equal_to>
Output_section_data_by_input_section_map;
+ // Map that link Input_section_specifier to Output_relaxed_input_section.
+ typedef Unordered_map<Input_section_specifier, Output_relaxed_input_section*,
+ Input_section_specifier::hash,
+ Input_section_specifier::equal_to>
+ Output_relaxed_input_section_by_input_section_map;
+
// Map used during relaxation of existing sections. This map
// an input section specifier to an input section list index.
// We assume that Input_section_list is a vector.
@@ -3358,7 +3364,8 @@ class Output_section : public Output_data
// Map from input sections to relaxed input sections. This is mutable
// because it is updated lazily. We may need to update it in a
// const qualified method.
- mutable Output_section_data_by_input_section_map relaxed_input_section_map_;
+ mutable Output_relaxed_input_section_by_input_section_map
+ relaxed_input_section_map_;
// Whether relaxed_input_section_map_ is valid.
mutable bool is_relaxed_input_section_map_valid_;
};