
What's the status of the linker errors across tool chain versions seen by building the 'omap3_evm' board?
This was already discussed in the threads [1] and [2], but it seems to me that there was no acceptable fix, yet?
E.g. with CodeSourcery's tool chain 2009q1-203 I get
arm-none-linux-gnueabi-ld: section .bss [8003f5e0 -> 8007e33f] overlaps section .rel.dyn [8003f5e0 -> 80044e6f] arm-none-linux-gnueabi-ld: section .dynsym [80044e70 -> 80044f0f] overlaps section .bss [8003f5e0 -> 8007e33f] arm-none-linux-gnueabi-ld: u-boot: section .bss vma 0x8003f5e0 overlaps previous sections
What we learned from [2] is that using [3] fixes the build (at least for me with the tool chain mentioned above). I.e. converting omap3_evm_version from u8 to int
-static u8 omap3_evm_version; +static int omap3_evm_version;
makes the issue disappear.
But if I understood the discussion correctly, this is no acceptable fix and can be used only as debug help (?).
Any further hints?
Thanks
Dirk
[1] ARMv7: Fix linker errors across toolchain versions http://lists.denx.de/pipermail/u-boot/2010-December/082874.html
[2] omap3evm: Clean-up EVM detection code http://lists.denx.de/pipermail/u-boot/2010-December/082950.html
[3] board/ti/evm/evm.c | 4 ++-- board/ti/evm/evm.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
Index: u-boot.git/board/ti/evm/evm.c =================================================================== --- u-boot.git.orig/board/ti/evm/evm.c +++ u-boot.git/board/ti/evm/evm.c @@ -37,9 +37,9 @@ #include <asm/mach-types.h> #include "evm.h"
-static u8 omap3_evm_version; +static int omap3_evm_version;
-u8 get_omap3_evm_rev(void) +int get_omap3_evm_rev(void) { return omap3_evm_version; } Index: u-boot.git/board/ti/evm/evm.h =================================================================== --- u-boot.git.orig/board/ti/evm/evm.h +++ u-boot.git/board/ti/evm/evm.h @@ -45,7 +45,7 @@ enum { OMAP3EVM_BOARD_GEN_2, /* EVM Rev >= Rev E */ };
-u8 get_omap3_evm_rev(void); +int get_omap3_evm_rev(void);
#if defined(CONFIG_CMD_NET) static void setup_net_chip(void);