public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.aribaud@free.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC] [PATCH V2] arm: arm926ejs: use ELF relocations
Date: Tue, 05 Oct 2010 13:18:53 +0200	[thread overview]
Message-ID: <4CAB099D.6040703@free.fr> (raw)
In-Reply-To: <4CAB058B.2090800@emk-elektronik.de>

Le 05/10/2010 13:01, Reinhard Meyer a ?crit :
> Dear Graeme Russ,
>>> .globl _rel_dyn_start_ofs
>>> _rel_dyn_start_ofs:
>>> 	.word __rel_dyn_start - _start
>>> .globl _rel_dyn_end_ofs
>>> _rel_dyn_end_ofs:
>>> 	.word __rel_dyn_end - _start
>>> .globl _dynsym_start_ofs
>>> _dynsym_start_ofs:
>>> 	.word __dynsym_start - _start
>>>
>>> get the values to "C".
>>
>> Odd, is x86 different:
>>
>> extern ulong _i386boot_rel_dyn_start;
>> extern ulong _i386boot_rel_dyn_end;
>>
>> void board_init_f (ulong stack_limit)
>> {
>> ...
>> 	Elf32_Rel *rel_dyn_start = (Elf32_Rel *)&_i386boot_rel_dyn_start;
>> 	Elf32_Rel *rel_dyn_end = (Elf32_Rel *)&_i386boot_rel_dyn_end;
>> ...
>
> It can be done that way, too! But above assembly code provides
> relative offsets already, in "C" it would turn a bit uglier ;)
> (TODO later)

For the _rel_dyn_* and _dyn_sym* literals, offsets are mandatory, 
because their actual value would be always 0 at link time, and only 
become correct after relocation, which creates a catch-22, since you 
need these values for relocation.

Defining their value as relative to _start instead does not change their 
relocation type, but it makes their link-time value already correct, and 
thus makes relocation possible.

(/me thinks an update to doc/README.arm-relocation is in order)

Amicalement,
-- 
Albert.

  reply	other threads:[~2010-10-05 11:18 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-05  6:31 [U-Boot] [RFC] [PATCH V2] arm: arm926ejs: use ELF relocations Albert Aribaud
2010-10-05  6:45 ` Wolfgang Denk
2010-10-05  7:05   ` Reinhard Meyer
2010-10-05  7:23     ` Reinhard Meyer
2010-10-05  7:52       ` Reinhard Meyer
2010-10-05  8:33         ` Heiko Schocher
2010-10-05  8:41           ` Albert ARIBAUD
2010-10-05  9:00             ` Heiko Schocher
2010-10-05  9:10               ` Reinhard Meyer
2010-10-05  9:15                 ` Heiko Schocher
2010-10-05  9:19                   ` Reinhard Meyer
2010-10-05  9:29                     ` Heiko Schocher
2010-10-05  9:33                       ` Reinhard Meyer
2010-10-05  9:39                         ` Reinhard Meyer
2010-10-05 10:11                           ` Albert ARIBAUD
2010-10-05 10:36                             ` Reinhard Meyer
2010-10-05 10:49                               ` Graeme Russ
2010-10-05 11:01                                 ` Reinhard Meyer
2010-10-05 11:18                                   ` Albert ARIBAUD [this message]
2010-10-05 10:33                         ` Albert ARIBAUD
2010-10-05 10:40                           ` Wolfgang Denk
2010-10-05 11:10                             ` Albert ARIBAUD
2010-10-05 11:17                               ` Reinhard Meyer
2010-10-05 11:46                                 ` Albert ARIBAUD
2010-10-05 13:18                                   ` Reinhard Meyer
2010-10-05 13:24                                     ` Graeme Russ
2010-10-05 13:36                                     ` Albert ARIBAUD
2010-10-05 14:06                                       ` Reinhard Meyer
2010-10-05 11:43                               ` Wolfgang Denk
2010-10-05 10:20         ` Albert ARIBAUD
2010-10-05  8:27     ` Wolfgang Denk
2010-10-05  8:38       ` Reinhard Meyer
2010-10-05  8:50         ` Albert ARIBAUD
2010-10-05  8:59           ` Reinhard Meyer
2010-10-05  7:07   ` Wolfgang Denk
2010-10-05  7:40 ` Heiko Schocher
2010-10-05  8:32   ` Albert ARIBAUD
2010-10-05  8:02 ` Wolfgang Denk
2010-10-05  9:25 ` Heiko Schocher
2010-10-05  9:32   ` Albert ARIBAUD
2010-10-05 12:07   ` Heiko Schocher
2010-10-05 12:52 ` 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=4CAB099D.6040703@free.fr \
    --to=albert.aribaud@free.fr \
    --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