Chromium Code Reviews| Index: gold/output.cc |
| =================================================================== |
| --- a/gold/output.cc |
| +++ b/gold/output.cc |
| @@ -608,7 +608,10 @@ |
| { |
| if (should_issue_warning) |
| gold_warning("cannot find entry symbol '%s'", entry); |
| - v = 0; |
| + |
| + // Can't find the entry symbol, and it's not a number. Use |
|
robertm
2012/04/27 19:46:15
This wont help with pnacl, wouldn't it be cleaner
Aleksandar Simeonov
2012/05/08 15:21:42
MIPS port of Gold is made to work the same way as
|
| + // the first address in the text section. |
| + v = this->target_->text_section_address(); |
| } |
| } |
| @@ -1152,6 +1155,12 @@ |
| compare(const Output_reloc<elfcpp::SHT_REL, dynamic, size, big_endian>& r2) |
| const |
| { |
| + // R_MIPS_NONE relocation have to be first. |
|
robertm
2012/04/27 19:46:15
why ? add comment
Aleksandar Simeonov
2012/05/08 15:21:42
On IRIX n64 rtld would ignore all dynamic relocati
|
| + if(this->type_ == 0) |
| + return -1; |
| + else if(r2.type_ == 0) |
| + return 1; |
| + |
| if (this->is_relative_) |
| { |
| if (!r2.is_relative_) |
| @@ -1723,6 +1732,10 @@ |
| val = pool->get_offset(this->u_.str); |
| break; |
| + case DYNAMIC_TARGET: |
| + val = parameters->target().dynamic_tag_value(this->tag_); |
| + break; |
| + |
| default: |
| val = this->u_.od->address() + this->offset_; |
| break; |