[gold/15662] Fix a powerpc internal error in do_relax()
Alan Modra
amodra@gmail.com
Thu Jun 27 00:46:00 GMT 2013
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
More information about the Binutils
mailing list