Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Alexandre Oliva <aoliva@redhat.com>
Cc: Mark Kettenis <mark.kettenis@xs4all.nl>,
	gdb-patches@sources.redhat.com, 	cagney@redhat.com
Subject: Re: cope with varying prelink base addresses
Date: Fri, 10 Feb 2006 01:42:00 -0000	[thread overview]
Message-ID: <20060210014235.GB8310@nevyn.them.org> (raw)
In-Reply-To: <ord5hw848g.fsf@livre.oliva.athome.lsd.ic.unicamp.br>

On Thu, Feb 09, 2006 at 10:08:47PM -0200, Alexandre Oliva wrote:
> > And MIPS targets
> > have a history of doing things differently even for the same OS.
> > Basically the two interpretations are:
> 
> > a. l_addr is the absolute address at which the shared object is loaded.
> 
> > b. l_addr is the relative address used to relocate the shared object.
> 
> Actually, both interpretations are the same.  It looks one or the
> other because of the base addresses that appear in the program
> headers.  In general, dynamic libraries start at address zero, but
> when they're prelinked, they don't, and then l_addr may remain as zero
> to reflect that no additional offset was applied.

No, Alexandre, Mark is talking about something that we actually
experienced.  The interpretations are _not_ the same when the base
address in the program header is non-zero.  There was at least
one dynamic loader which set l_addr to the absolute address
the segment was loaded to, even though the program header's l_addr
was non-zero.

I believe that this was, at varying times, MIPS Linux and MIPS NetBSD.
At least one of the loaders was later changed to avoid the problem, and
I'm not sure what happened to the other.  The linker was also updated.

-- 
Daniel Jacobowitz
CodeSourcery


  reply	other threads:[~2006-02-10  1:42 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-08  5:35 Alexandre Oliva
2006-02-08  6:25 ` Eli Zaretskii
2006-02-10  0:15   ` Alexandre Oliva
2006-02-08 21:40 ` Mark Kettenis
2006-02-10  0:09   ` Alexandre Oliva
2006-02-10  1:42     ` Daniel Jacobowitz [this message]
2006-02-13 19:03       ` Alexandre Oliva
2006-02-14  0:56         ` Kevin Buettner
2006-02-14  2:08           ` Daniel Jacobowitz
2006-02-14 18:40             ` Alexandre Oliva
2006-02-14 18:53               ` Mark Kettenis
2006-02-20 18:16                 ` Alexandre Oliva
2006-02-20 21:49                   ` Mark Kettenis
2006-02-20 17:37               ` Daniel Jacobowitz
2006-02-20 17:43 ` Daniel Jacobowitz
2006-02-23 20:22   ` Alexandre Oliva
2006-02-23 20:53     ` Daniel Jacobowitz
2006-02-24  7:42       ` Alexandre Oliva
2006-02-28  1:50         ` Kevin Buettner

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=20060210014235.GB8310@nevyn.them.org \
    --to=drow@false.org \
    --cc=aoliva@redhat.com \
    --cc=cagney@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=mark.kettenis@xs4all.nl \
    /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