PR30794, PowerPC gold: internal error in add_output_section_to_load

Caused by commit 5a97377e5513, specifically this code added to
Target_powerpc::do_relax
+      if (parameters->options().output_is_position_independent())
+       this->rela_dyn_size_
+         = this->rela_dyn_section(layout)->current_data_size();

The problem here is that if .rela.dyn isn't already created then the
call to rela_dyn_section creates it, and as this comment in
Target_powerpc::do_finalize_sections says:
	  // Annoyingly, we need to make these sections now whether or
	  // not we need them.  If we delay until do_relax then we
	  // need to mess with the relaxation machinery checkpointing.
We can't be creating sections in do_relax.

	PR 30794
	* powerpc.cc (Target_powerpc::do_relax): Only set rela_dyn_size_
	for size == 64, and assert that rela_dyn_ already exists.
	Tidy code setting plt_thread_safe, which also only needs to be
	set when size == 64 for ELFv1.
1 file changed