https://sourceware.org/bugzilla/show_bug.cgi?id=30794

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Alan Modra <amo...@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d537f77ef3b18a5fbfd598643aaad957652e9608

commit d537f77ef3b18a5fbfd598643aaad957652e9608
Author: Alan Modra <amo...@gmail.com>
Date:   Fri Aug 25 09:12:18 2023 +0930

    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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to