[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