From: Nick Clifton <nickc@cambridge.redhat.com>
To: binutils@sources.redhat.com
Cc: Ian Lance Taylor <ian@zembu.com>
Subject: elf_link_hash_entry vs generic_link_hash_entry
Date: Wed, 22 Aug 2001 00:44:00 -0000 [thread overview]
Message-ID: <m3y9ocbkyw.fsf_-_@north-pole.nickc.cambridge.redhat.com> (raw)
In-Reply-To: <si66bh2zdl.fsf@daffy.airs.com>
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.
2. Add the fields from generic_link_hash_entry to
elf_link_hash_entry so that the generic functions can be used
with the elf structure. This is my preferred solution, but as
Ian points out, this will increase the size of the hash table
and that is already a significant memory hog.
3. Go back to the old situation where elf ports that do not provide
their own relocation backends use the generic linker hash table
entry structure, but add code to the other elf routines to
detect this and fail before they try to access fields in the
hash structure that are not there.
Any comments ?
Cheers
Nick
next parent reply other threads:[~2001-08-22 0:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <si66bh2zdl.fsf@daffy.airs.com>
2001-08-22 0:44 ` Nick Clifton [this message]
2001-08-22 1:06 ` Thiemo Seufer
2001-08-22 7:02 ` Ian Lance Taylor
2001-08-23 9:22 ` H . J . Lu
2001-08-23 11:36 ` H . J . Lu
2001-08-23 12:10 ` H . J . Lu
2001-08-24 9:35 ` Nick Clifton
2001-08-24 9:54 ` H . J . Lu
2001-08-24 10:02 ` H . J . Lu
2001-08-24 9:18 ` Nick Clifton
2001-08-24 9:22 ` H . J . Lu
2001-08-28 15:53 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3y9ocbkyw.fsf_-_@north-pole.nickc.cambridge.redhat.com \
--to=nickc@cambridge.redhat.com \
--cc=binutils@sources.redhat.com \
--cc=ian@zembu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).