[U-Boot] [PATCH] dlmalloc: remove manual reloc alias warning
Andreas Bießmann
andreas.devel at googlemail.com
Tue Aug 14 10:50:36 CEST 2012
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.
best regards
Andreas Bießmann
More information about the U-Boot
mailing list