From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] avr32: fix relocation address calculation
Date: Fri, 10 May 2013 11:24:44 +0200 [thread overview]
Message-ID: <20130510112444.4dca773f@lilith> (raw)
In-Reply-To: <1368005117-8624-1-git-send-email-andreas.devel@googlemail.com>
Hi Andreas,
On Wed, 8 May 2013 11:25:17 +0200, Andreas Bie?mann
<andreas.devel@googlemail.com> wrote:
> Commit 1865286466a5d0c7f2e3c37632da56556c838e9e (Introduce generic link
> section.h symbol files) changed the __bss_end symbol type from char[] to
> ulong. This led to wrong relocation parameters which ended up in a not working
> u-boot. Unfortunately this is not clear to see cause due to RAM aliasing we
> may get a 'half-working' u-boot then.
>
> Fix this by dereferencing the __bss_end symbol where needed.
(cc:ing Simon and Tom)
The dereferencing is correct, so this patch seems good per se (it could
actually have applied when __bss_end was still a char[]).
But the definition of __bss_end to being an ulong, as introduced by
18652864, is plain wrong. Just because it is a linker defined symbol
does not mean the object it represents is a 32-bit quantity -- it is
not. It still is a non-object, a pure address.
Ditto for __data_end, __rel_dyn_start, __rel_dyn_end and pretty much any
symbol in sections.h which is not an offset.
Sorry for not spotting this before it was merged in; but now this must
be fixed. I'm ok with the wrongly-ulong symbols being changed back to
char[], though I would prefer their type to be char[0] if possible, as
this is (admittedly marginally) more likely to help the compiler catch
accidental dereferencings.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2013-05-10 9:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-08 9:25 [U-Boot] [PATCH] avr32: fix relocation address calculation Andreas Bießmann
2013-05-10 9:24 ` Albert ARIBAUD [this message]
2013-05-10 10:57 ` Andreas Bießmann
2013-05-10 15:09 ` Albert ARIBAUD
2013-05-10 17:02 ` Michael Cashwell
2013-05-10 17:15 ` Albert ARIBAUD
2013-05-13 8:35 ` Andreas Bießmann
2013-05-13 11:34 ` Albert ARIBAUD
2013-05-13 11:43 ` Albert ARIBAUD
2013-05-13 8:38 ` [U-Boot] " Andreas Bießmann
2013-05-13 8:42 ` Andreas Bießmann
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=20130510112444.4dca773f@lilith \
--to=albert.u.boot@aribaud.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.