PowerPC gcc bootstrap fail with bss-plt

git commit 3e04d7655b introduced a bug by sizing output sections
earlier in ppc_before_allocation.  That meant PLT (and GOT) sizes were
not included when calculating total executable section sizes.

	* emultempl/ppc32elf.em (ppc_before_allocation): Force running
	prelim_size_sections before deciding whether branch trampolines
	might be needed.
This commit is contained in:
Alan Modra 2019-08-16 13:20:28 +09:30
parent 63f6e94fb3
commit 7df6aecc97
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-08-16 Alan Modra <amodra@gmail.com>
* emultempl/ppc32elf.em (ppc_before_allocation): Force running
prelim_size_sections before deciding whether branch trampolines
might be needed.
2019-08-15 Jim Wilson <jimw@sifive.com>
* testsuite/ld-riscv-elf/c-lui-2.d: New.

View File

@ -171,7 +171,12 @@ ppc_before_allocation (void)
bfd_vma high = 0;
asection *o;
/* Run lang_size_sections (if not already done). */
/* Run lang_size_sections even if already done, so as to pick
up gld${EMULATION_NAME}_before_allocation sizing. This
matters when we have an executable bss plt which will
typically be laid out near the end of the image, ie. worst
case for branches at the start of .text. */
expld.phase = lang_first_phase_enum;
prelim_size_sections ();
for (o = link_info.output_bfd->sections; o != NULL; o = o->next)