[U-Boot] [PATCH] dlmalloc: remove manual reloc alias warning

Simon Glass sjg at chromium.org
Wed Aug 15 02:15:50 CEST 2012


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.

Regards,
Simon

>
> best regards
>
> Andreas Bießmann


More information about the U-Boot mailing list