This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: elf_link_hash_entry vs generic_link_hash_entry
- To: binutils at sources dot redhat dot com
- Subject: Re: elf_link_hash_entry vs generic_link_hash_entry
- From: Thiemo Seufer <ica2_ts at csv dot ica dot uni-stuttgart dot de>
- Date: Wed, 22 Aug 2001 10:06:20 +0200
- References: <si66bh2zdl.fsf@daffy.airs.com> <m3y9ocbkyw.fsf_-_@north-pole.nickc.cambridge.redhat.com>
Nick Clifton wrote:
> Hi Guys,
>
> Ian Taylor has pointed out that my recent patch to elfxx-target.h
> has actually broken several elf based ports. (Specifically: pj,
> m88k, m68hc11, m68hc12, i960, d30v, arc, gen). The problem is that
> these ports uses the generic linker code to perform section
> relocation rather than having their own specific code. This breaks
> if the elf hash table structure (elf_link_hash_entry) is used
> instead of the generic_link_hash_entry structure, since the two
> structures are not compatable. The reason that my patch changed
> elfxx-target.h so that all elf backends would use elf_link_hash_entry
> is that several other parts of the elf linker rely upon using other
> fields which are only found in that structure.
>
> As I see there are three ways that we can fix this:
>
> 1. Require that all ELF backends define their own section
> relocation function and final link function. Make it a #error
> if they do not. Fix all the ports that currently do not do
> this. This is Ian's recommended solution.
What about introducing something like generic_elf_final_link_relocate()
and generic_elf_final_link() instead of code duplication?
Thiemo