Chromium Code Reviews| Index: gold/target.h |
| =================================================================== |
| --- a/gold/target.h |
| +++ b/gold/target.h |
| @@ -60,6 +60,7 @@ |
| class Output_section; |
| class Input_objects; |
| class Task; |
| +class Output_data_dynamic; |
| // The abstract class for target specific handling. |
| @@ -203,6 +204,11 @@ |
| Symbol_table* symtab) |
| { return this->do_finalize_sections(layout, input_objects, symtab); } |
| + // Fix data that are known after finalize_sections for MIPS (and possible |
| + // some other architectures). |
| + void fix_sections(Layout* layout, Symbol_table* symtab) |
| + { return this->do_fix_sections(layout, symtab); } |
| + |
| // Return the value to use for a global symbol which needs a special |
| // value in the dynamic symbol table. This will only be called if |
| // the backend first calls symbol->set_needs_dynsym_value(). |
| @@ -235,6 +241,11 @@ |
| is_local_label_name(const char* name) const |
| { return this->do_is_local_label_name(name); } |
| + // Get the value for target specific dynamic tags. |
| + unsigned int |
| + dynamic_tag_value(elfcpp::DT tag) const |
| + { return this->do_dynamic_tag_value(tag); } |
| + |
| // Get the symbol index to use for a target specific reloc. |
| unsigned int |
| reloc_symbol_index(void* arg, unsigned int type) const |
| @@ -401,6 +412,12 @@ |
| define_standard_symbols(Symbol_table* symtab, Layout* layout) |
| { this->do_define_standard_symbols(symtab, layout); } |
| + // Return address of .text section. Some architecutres needs it as entry |
|
robertm
2012/04/27 19:46:15
I would prefer not have this change and the stuff
Aleksandar Simeonov
2012/05/08 15:21:42
This part is added to have same behavior as ld. We
|
| + // point if _start symbol is not defined and no -e option is used. |
| + virtual uint64_t |
| + text_section_address() const |
| + { return 0; } |
| + |
| protected: |
| // This struct holds the constant information for a child class. We |
| // use a struct to avoid the overhead of virtual function calls for |
| @@ -467,6 +484,11 @@ |
| { } |
| // Virtual function which may be implemented by the child class. |
| + virtual void |
| + do_fix_sections(Layout*, Symbol_table*) |
| + { } |
| + |
| + // Virtual function which may be implemented by the child class. |
| virtual uint64_t |
| do_dynsym_value(const Symbol*) const |
| { gold_unreachable(); } |
| @@ -495,6 +517,12 @@ |
| do_is_local_label_name(const char*) const; |
| // Virtual function that must be overridden by a target which uses |
| + // target specific dynamic tags. |
| + virtual unsigned int |
| + do_dynamic_tag_value(elfcpp::DT) const |
| + { gold_unreachable(); } |
| + |
| + // Virtual function that must be overridden by a target which uses |
| // target specific relocations. |
| virtual unsigned int |
| do_reloc_symbol_index(void*, unsigned int) const |