This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold/15662] Fix a powerpc internal error in do_relax()

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  <>
>         PR gold/15662
>         * (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

	PR gold/15662
	* (Output_data_brlt_powerpc::reset_brlt_sizes): New
	(Output_data_brlt_powerpc::finalize_brlt_sizes): New function.
	(Target_powerpc::do_relax): Call the above.

Alan Modra
Australia Development Lab, IBM

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]