Hi Albert,

On 02.02.2013 18:02, Albert ARIBAUD wrote:
> Refactor linker-generated array code so that symbols
> which were previously linker-generated are now compiler-
> generated. This causes relocation records of type
> R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
> code which uses LGA able to run before relocation as
> well as after.
> 
> Note: this affects more than ARM targets, as linker-
> lists span possibly all target architectures, notably
> PowerPC.
> 
> Signed-off-by: Albert ARIBAUD <albert.u.b...@aribaud.net>

Tested on avr32. The patch seems to work (basic shell testing), however
it generates an aliasing warning:

---8<---
abiessmann@azuregos % PATH=$AVR32_PATH:$PATH BUILD_DIR=/tmp/build_avr32
MAKEALL_LOGDIR=/tmp/LOG BUILD_NCPUS=4 BUILD_NBUILDS=4 ./MAKEALL atstk1002
Configuring for atstk1002 board...
   text    data     bss     dec     hex filename
 116315    8972  211900  337187   52523 /tmp/build_avr32/atstk1002/u-boot
env_callback.c: In function 'find_env_callback':
env_callback.c:47: warning: dereferencing pointer 'clbkp' does break
strict-aliasing rules
env_callback.c:44: note: initialized from here
env_callback.c:46: note: initialized from here
--->8---

I think it has something to do with tha fact that you re-cast the
anonymous struct 'start' here:

---8<---
#define ll_entry_start(_type, _list)
({
        static struct {} start __aligned(4) __attribute__((unused,
                section(".u_boot_list_2_"#_list"_1")));
        (_type *)&start;
})
--->8---

I think other gcc-4.4 users will see the same error. Currently I have no
time to dive into this.

Best regards

Andreas Bießmann

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to