[U-Boot] [PATCH] dlmalloc: remove manual reloc alias warning
Andreas Bießmann
andreas.devel at googlemail.com
Wed Aug 15 08:29:28 CEST 2012
Dear Simon Glass,
On 15.08.12 02:15, Simon Glass wrote:
> Hi,
>
> On Tue, Aug 14, 2012 at 1:50 AM, Andreas Bießmann
> <andreas.devel at googlemail.com> wrote:
>> Dear all,
>>
>> On 13.08.2012 11:02, Andreas Bießmann wrote:
>>> From: Andreas Bießmann <biessmann at corscience.de>
>>>
>>> The avr32 architecture (and some others) require manual relocation. Due to the
>>> previous error all avr32 boards gave warnings in MAKEALL wich makes it hard to
>>> find new warnings.
>>>
>>> This patch fixes following warning:
>>> ---8<---
>>> dlmalloc.c: In function 'malloc_bin_reloc':
>>> dlmalloc.c:1493: warning: dereferencing pointer 'p' does break strict-aliasing rules
>>> dlmalloc.c:1493: warning: dereferencing pointer 'p' does break strict-aliasing rules
>>> dlmalloc.c:1490: note: initialized from here
>>> dlmalloc.c:1493: note: initialized from here
>>> --->8---
>>>
>>> Signed-off-by: Andreas Bießmann <biessmann at corscience.de>
>>> ---
>>> A question to all the other related arches, namely m68k, mips, nds32 and
>>> sparc: Do you encounter the same warnings or is this warning due to my
>>> outdated compiler (4.4.3 currently, unfortunately atmel do not bother to send
>>> their patches mainline)?
>>>
>>> common/dlmalloc.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/common/dlmalloc.c b/common/dlmalloc.c
>>> index c645d73..78b1885 100644
>>> --- a/common/dlmalloc.c
>>> +++ b/common/dlmalloc.c
>>> @@ -1485,9 +1485,10 @@ static mbinptr av_[NAV * 2 + 2] = {
>>> };
>>>
>>> #ifdef CONFIG_NEEDS_MANUAL_RELOC
>>> +typedef unsigned long __attribute__((__may_alias__)) ulong_aliased;
>>> void malloc_bin_reloc (void)
>>> {
>>> - unsigned long *p = (unsigned long *)(&av_[2]);
>>> + ulong_aliased *p = (ulong_aliased *)(&av_[2]);
>>> int i;
>>> for (i=2; i<(sizeof(av_)/sizeof(mbinptr)); ++i) {
>>> *p++ += gd->reloc_off;
>>>
>>
>> this seems to be related to
>> http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/121848/focus=121849
>> can you Wolfgang and/or Simon please comment.
>
> My only comment is that I created that patch due to errors I saw at
> the time, and still see with the toolchain I use for avr32.
So you also want to remove this annoying warning. Sorry that I didn't
test your patch from January earlier, but it is broken at runtime.
I would really like to remove the alias warning in 2012.10. My patch is
straight forward, maybe there are better solutions.
However I would like to see tested by from other affected arches (m68k,
mips, nds32 and sparc).
Best regards
Andreas Bießmann
More information about the U-Boot
mailing list