From d6344fb5ba8bfe0219f91c52e296707dbcdb07e3 Mon Sep 17 00:00:00 2001 From: Doug Kwan Date: Thu, 17 Dec 2009 00:00:26 +0000 Subject: 2009-12-16 Doug Kwan * 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. --- gold/output.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gold/output.h') 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 + 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_; }; -- cgit v1.1