From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?QW5kcmVhcyBCaWXDn21hbm4=?= Date: Tue, 14 Aug 2012 10:50:36 +0200 Subject: [U-Boot] [PATCH] dlmalloc: remove manual reloc alias warning In-Reply-To: <1344848523-20359-1-git-send-email-andreas.devel@googlemail.com> References: <1344848523-20359-1-git-send-email-andreas.devel@googlemail.com> Message-ID: <502A115C.9000408@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear all, On 13.08.2012 11:02, Andreas Bie?mann wrote: > From: Andreas Bie?mann > > 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 > --- > 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. best regards Andreas Bie?mann