From: J. William Campbell <jwilliamcampbell@comcast.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] ARM relocation, question to Heiko
Date: Sun, 03 Oct 2010 12:26:33 -0700 [thread overview]
Message-ID: <4CA8D8E9.3080609@comcast.net> (raw)
In-Reply-To: <20101003182942.55A1E1539A0@gemini.denx.de>
On 10/3/2010 11:29 AM, Wolfgang Denk wrote:
> Dear Reinhard Meyer,
>
> In message<4CA79896.2010606@emk-elektronik.de> you wrote:
>> I agree here. _If_ relocation, it should work without hand-adding
>> fixup stuff to all functions using initialized data with pointers.
>> Even Wolfgang forgot to fixup his 2nd level command table in
>> cmd_nvedit.c ;)
> I didn't forget it - at least not in the sensse that I think this is
> something that needs to be done.
>
> This works fine on PPC with relocation, and we should make it work
> the same on other arches.
>
>> And, for space concerns in flash, relocation should always be an
>> option on a board by board basis...
> NAK.
>
>> And as an idea, if position independent code is used, only pointers
>> in initialized data need adjustment. Cannot the linker emit a table
>> of addresses that need fixing?
> It does. That's the GOT.
I think this is actually a misunderstanding. The purpose of the GOT, at
least from GCC's point of view, is to hold the absolute addresses of
private data referenced by shared library code. That is what it was
invented to do. This is similar to, but not identical with, relocating
all data references. Initialized data in the library must have a copy
created (and relocated as necessary if it contains pointers) by the
runtime linker when the library is initialized in the address space of
the process using the library. The code in the shared library is -fPIC,
but it still needs the runtime linker to allocate a copy of the GOT for
the current user AND to allocate and relocate any data that is required
for the library that is private to the user. It is that second step
where we have trouble.
Best Regards,
Bill Campbell
> Best regards,
>
> Wolfgang Denk
>
next prev parent reply other threads:[~2010-10-03 19:26 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-30 13:57 [U-Boot] ARM relocation, probably trivial mistake Reinhard Meyer
2010-09-30 14:08 ` Stefano Babic
2010-09-30 14:20 ` Reinhard Meyer
2010-09-30 15:39 ` Heiko Schocher
2010-09-30 16:06 ` Reinhard Meyer
2010-09-30 15:38 ` Heiko Schocher
2010-09-30 17:43 ` Wolfgang Denk
2010-10-01 5:25 ` Heiko Schocher
2010-10-01 5:40 ` Albert ARIBAUD
2010-10-01 5:53 ` Heiko Schocher
2010-10-01 6:39 ` Reinhard Meyer
2010-10-01 6:57 ` Heiko Schocher
2010-10-01 8:45 ` Wolfgang Denk
2010-10-01 7:01 ` Albert ARIBAUD
2010-10-01 7:42 ` [U-Boot] ARM relocation, probably trivial mistake - back to original problem Reinhard Meyer
2010-10-01 8:27 ` Heiko Schocher
2010-10-01 10:44 ` Reinhard Meyer
2010-10-01 10:55 ` Wolfgang Denk
2010-10-01 11:03 ` Reinhard Meyer
2010-10-01 11:21 ` Wolfgang Denk
2010-10-01 11:37 ` Reinhard Meyer
2010-10-01 11:59 ` Wolfgang Denk
2010-10-01 12:22 ` Reinhard Meyer
2010-10-01 12:47 ` Reinhard Meyer
2010-10-01 12:55 ` Wolfgang Denk
2010-10-01 14:55 ` Reinhard Meyer
2010-10-02 8:53 ` Heiko Schocher
2010-10-01 15:47 ` Steve Sakoman
2010-10-02 7:15 ` [U-Boot] ARM relocation, question to Heiko Reinhard Meyer
[not found] ` <4CA6E517.9040701@fr<1286167382.22760.19.camel@ptyser-laptop>
2010-10-02 7:53 ` Albert ARIBAUD
2010-10-02 8:10 ` Reinhard Meyer
2010-10-02 8:26 ` Albert ARIBAUD
2010-10-03 18:04 ` Wolfgang Denk
2010-10-02 9:08 ` Heiko Schocher
2010-10-02 9:29 ` Albert ARIBAUD
2010-10-03 18:05 ` Wolfgang Denk
2010-10-02 10:17 ` Joakim Tjernlund
2010-10-02 16:21 ` J. William Campbell
2010-10-02 18:33 ` Reinhard Meyer
2010-10-03 18:22 ` Wolfgang Denk
2010-10-02 20:39 ` Reinhard Meyer
2010-10-02 21:09 ` Albert ARIBAUD
2010-10-02 23:07 ` Graeme Russ
2010-10-03 7:10 ` Albert ARIBAUD
2010-10-03 8:44 ` Graeme Russ
2010-10-03 8:58 ` Albert ARIBAUD
2010-10-03 15:36 ` J. William Campbell
2010-10-03 16:47 ` Albert ARIBAUD
2010-10-03 17:54 ` Albert ARIBAUD
2010-10-03 18:43 ` Wolfgang Denk
2010-10-04 5:41 ` Heiko Schocher
2010-10-03 18:29 ` Wolfgang Denk
2010-10-03 19:26 ` J. William Campbell [this message]
2010-10-04 5:52 ` Heiko Schocher
2010-10-03 18:14 ` Wolfgang Denk
2010-10-03 18:54 ` J. William Campbell
2010-10-03 19:52 ` Albert ARIBAUD
2010-10-03 18:03 ` Wolfgang Denk
2010-10-03 18:34 ` Albert ARIBAUD
2010-10-03 18:45 ` Wolfgang Denk
2010-10-04 6:08 ` Heiko Schocher
2010-10-04 6:40 ` Albert ARIBAUD
2010-10-04 7:27 ` Reinhard Meyer
2010-10-04 8:28 ` Albert ARIBAUD
2010-10-04 8:57 ` Heiko Schocher
2010-10-04 9:27 ` Albert ARIBAUD
2010-10-04 10:01 ` Joakim Tjernlund
2010-10-04 9:58 ` Graeme Russ
2010-10-04 14:17 ` Albert ARIBAUD
2010-10-04 14:25 ` Rogan Dawes
2010-10-04 15:24 ` Albert ARIBAUD
2010-10-04 16:31 ` Stefan Roese
2010-10-04 21:31 ` Albert ARIBAUD
2010-10-04 7:44 ` Albert ARIBAUD
2010-10-04 4:43 ` Peter Tyser
2010-10-04 6:08 ` Wolfgang Denk
2010-10-04 7:36 ` Joakim Tjernlund
2010-10-04 8:08 ` Albert ARIBAUD
2010-10-04 8:28 ` Joakim Tjernlund
2010-10-04 8:33 ` Albert ARIBAUD
[not found] ` <OF05779DA1.EF3C4954-ONC12577B2.00307A0D-C12577B2.0030B9C0@tran <4CAA1613.80002@comcast.net>
2010-10-04 8:52 ` Joakim Tjernlund
2010-10-04 9:10 ` Albert ARIBAUD
2010-10-04 10:13 ` Wolfgang Denk
2010-10-04 15:28 ` J. William Campbell
2010-10-04 15:52 ` Albert ARIBAUD
2010-10-04 17:06 ` Wolfgang Denk
2010-10-04 17:59 ` J. William Campbell
2010-10-04 18:43 ` Joakim Tjernlund
2010-10-04 21:10 ` Wolfgang Denk
2010-10-05 7:26 ` Joakim Tjernlund
2010-10-04 17:04 ` Graeme Russ
2010-10-04 17:14 ` Wolfgang Denk
2010-10-04 8:27 ` Wolfgang Denk
2010-10-02 8:49 ` [U-Boot] ARM relocation, probably trivial mistake - back to original problem Heiko Schocher
2010-10-01 12:49 ` Wolfgang Denk
2010-10-01 14:48 ` Reinhard Meyer
2010-10-04 7:44 ` [U-Boot] AT91 clock and timer cleanups (was: ARM relocation, probably trivial mistake - back to original problem) Reinhard Meyer
2010-10-04 8:32 ` Wolfgang Denk
2010-10-04 8:42 ` [U-Boot] AT91 clock and timer cleanups Reinhard Meyer
2010-10-04 8:49 ` Wolfgang Denk
2010-10-04 8:52 ` Reinhard Meyer
2010-10-04 9:03 ` Wolfgang Denk
2010-10-04 9:12 ` Reinhard Meyer
2010-10-04 14:58 ` Reinhard Meyer
2010-10-04 17:00 ` Wolfgang Denk
2010-10-04 17:15 ` Reinhard Meyer
2010-10-04 17:32 ` Wolfgang Denk
2010-10-04 19:22 ` Reinhard Meyer
2010-10-01 8:48 ` [U-Boot] ARM relocation, probably trivial mistake - back to original problem Wolfgang Denk
2010-10-01 9:50 ` Reinhard Meyer
2010-10-01 8:03 ` [U-Boot] ARM relocation, probably trivial mistake Wolfgang Denk
2010-10-01 7:51 ` Wolfgang Denk
2010-10-01 8:28 ` Heiko Schocher
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=4CA8D8E9.3080609@comcast.net \
--to=jwilliamcampbell@comcast.net \
--cc=u-boot@lists.denx.de \
/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