This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH]: Allow relative calculations for non-R_*_RELATIVE relocs.
From: Ian Lance Taylor <iant@google.com>
Date: Fri, 12 Feb 2010 15:43:24 -0800
> David Miller <davem@davemloft.net> writes:
>
>> 2010-02-12 David S. Miller <davem@davemloft.net>
>>
>> * output.h (Output_reloc<SHT_REL>::Output_reloc): Add
>> is_symbolless parameter.
>> (Output_reloc<SHT_REL>::is_symbolless): New.
>> (Output_reloc<SHT_REL>::is_symbolless_): New.
>> (Output_reloc<SHT_REL>::type_): Decrease to 29 bits.
>> (Output_reloc<SHT_RELA>::Output_reloc): Add is_symbolless parameter.
>> (Output_reloc<SHT_RELA>::is_symbolless): New.
>> (Output_data_reloc::add_global): Handle is_symbolless.
>> (Output_data_reloc::add_global_relative): Likewise.
>> (Output_data_reloc::add_local): Likewise.
>> (Output_data_reloc::add_local_relative): Likewise.
>> (Output_data_reloc::add_symbolless_global_addend): New.
>> (Output_data_reloc::add_symbolless_local_addend): New.
>> * output.cc (Output_reloc<SHT_REL>::Output_reloc): Handle
>> is_symbolless.
>> (Output_reloc::set_needs_dynsym_index): Test ->is_symbolless_
>> instead of ->is_relative_
>> (Output_reloc::write): Likewise.
>> (Output_reloc::get_symbol_index): Return 0 when ->is_symbolless_
>> (Output_reloc::write_rel): Simplify.
>>
>> * sparc.cc (Target_sparc::Scan::local): Use
>> ->add_symbolless_local_addend as needed.
>> (Target_sparc::Scan::global): Use ->add_symbolless_global_addend as
>> needed. Also, emit appropriate unaligned vs. aligned dynamic reloc
>> based upon relocation offset.
>
> This is OK.
>
> Thanks.
Thanks for your patience in reviewing this work.
Committed, thanks again!