public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
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



       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).