This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [gold/15662] Fix a powerpc internal error in do_relax()
- From: Alan Modra <amodra at gmail dot com>
- To: Jing Yu <jingyu at google dot com>
- Cc: binutils at sourceware dot org, Cary Coutant <ccoutant at google dot com>
- Date: Thu, 27 Jun 2013 10:16:10 +0930
- Subject: Re: [gold/15662] Fix a powerpc internal error in do_relax()
- References: <CAJ_rGWTjDxuekGftVZV7gu4buvXoUJqj9+uZUJNwfMJtDZnRBg at mail dot gmail dot com>
On Mon, Jun 24, 2013 at 01:44:08PM -0700, Jing Yu wrote:
> The patch is to fix an gold internal error,
> internal error in set_current_data_size_for_child, at
> /usr/local/home/jingyu/opensource/binutils_trunk/src/gold/output.h:436
>
> The error happens when set_current_data_size_for_child is called through
> this->rel_->add_relative(elfcpp::R_POWERPC_RELATIVE, this, off, to);
> through
> Target_powerpc<size, big_endian>::do_relax().
> When the data size is updated through add_relative, the flag
> is_data_size_valid_ is not set to false beforehand, which triggers the
> assertion failure.
>
> Thanks Cary for the comments in gold/15662. Here is the updated patch.
>
> Is the patch ok? Thanks!
>
> 2013-06-24 Jing Yu <jingyu@google.com>
>
> PR gold/15662
> * powerpc.cc (Target_powerpc::do_relax): Add calls to reset
> and finalize its relo section's data size.
Thanks! The patch is OK to apply, but the changelog should be something
like:
PR gold/15662
* powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New
function.
(Output_data_brlt_powerpc::finalize_brlt_sizes): New function.
(Target_powerpc::do_relax): Call the above.
--
Alan Modra
Australia Development Lab, IBM