diff options
author | Ian Lance Taylor <iant@google.com> | 2008-02-06 19:32:32 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2008-02-06 19:32:32 +0000 |
commit | 755ab8af10558c40e5090e92c46bbbd89815c292 (patch) | |
tree | c2d87009c2ebc0af8507f0e2dddebdab5b91c608 /gold/layout.h | |
parent | 06b1d59cd626db8764130ba2a03daa42feefc968 (diff) | |
download | gdb-755ab8af10558c40e5090e92c46bbbd89815c292.zip gdb-755ab8af10558c40e5090e92c46bbbd89815c292.tar.gz gdb-755ab8af10558c40e5090e92c46bbbd89815c292.tar.bz2 |
Fix group signature handling for relocatable link, add bootstrap
relocatable test.
Diffstat (limited to 'gold/layout.h')
-rw-r--r-- | gold/layout.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gold/layout.h b/gold/layout.h index e050df3..674956e 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -171,6 +171,10 @@ class Layout define_script_symbols(Symbol_table* symtab) { this->script_options_->add_symbols_to_table(symtab); } + // Define symbols for group signatures. + void + define_group_signatures(Symbol_table*); + // Return the Stringpool used for symbol names. const Stringpool* sympool() const @@ -332,6 +336,25 @@ class Layout static const Linkonce_mapping linkonce_mapping[]; static const int linkonce_mapping_count; + // During a relocatable link, a list of group sections and + // signatures. + struct Group_signature + { + // The group section. + Output_section* section; + // The signature. + const char* signature; + + Group_signature() + : section(NULL), signature(NULL) + { } + + Group_signature(Output_section* sectiona, const char* signaturea) + : section(sectiona), signature(signaturea) + { } + }; + typedef std::vector<Group_signature> Group_signatures; + // Create a .note section for gold. void create_gold_note(); @@ -537,6 +560,8 @@ class Layout Eh_frame* eh_frame_data_; // The exception frame header output section if there is one. Output_section* eh_frame_hdr_section_; + // A list of group sections and their signatures. + Group_signatures group_signatures_; // The size of the output file. off_t output_file_size_; // Whether we have seen an object file marked to require an |