This is the mail archive of the binutils@sourceware.org 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  <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


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