If the default starting address is less than the new ABI page size,
we end up misaligning the file header, causing an internal error.
gold/
PR gold/20834
* target.h (Target::default_text_segment_address): Bump default
start address up to ABI page size.
+2016-12-01 Cary Coutant <ccoutant@gmail.com>
+
+ PR gold/20834
+ * target.h (Target::default_text_segment_address): Bump default
+ start address up to ABI page size.
+
2016-12-01 Cary Coutant <ccoutant@gmail.com>
PR gold/18989
{ return this->pti_->dynamic_linker; }
// Return the default address to use for the text segment.
+ // If a -z max-page-size argument has set the ABI page size
+ // to a value larger than the default starting address,
+ // bump the starting address up to the page size, to avoid
+ // misaligning the text segment in the file.
uint64_t
default_text_segment_address() const
- { return this->pti_->default_text_segment_address; }
+ {
+ uint64_t addr = this->pti_->default_text_segment_address;
+ uint64_t pagesize = this->abi_pagesize();
+ if (addr < pagesize)
+ addr = pagesize;
+ return addr;
+ }
// Return the ABI specified page size.
uint64_t