
2014-03-28 3:25 GMT+01:00 Masahiro Yamada yamada.m@jp.panasonic.com:
Those boards have linker errors, but I do not understand yet why. For example on ARM the linker complains about multiple definition of board_init() and board_eth_init(). The solely difference is that there are one or two additional intermediate objects (board/built-in.o and if necessary board/VENDOR/built-in.o). But board/built-in.o and board/BOARD/built-in.o respectively board/VENDOR/BOARD/built-in.o contain the same symbols and object code. The strange thing is that the error only affects some boards.
Have you figured out the multiple definition error?
They are nasty ones and have their own linker scripts. :-( For cm_t335 board, board/compulab/cm_t335/u-boot.lds needs modifying.
--- a/board/compulab/cm_t335/u-boot.lds +++ b/board/compulab/cm_t335/u-boot.lds @@ -19,7 +19,7 @@ SECTIONS { *(.__image_copy_start) CPUDIR/start.o (.text*)
board/compulab/cm_t335/built-in.o (.text*)
board/built-in.o (.text*) *(.text*) }
that would fix it. But I looked through several linker scripts and saw that some boards use that for size optimization. I think we should ignore board/built-in.o and keep the direct linking of board/BOARD/built-in.o respectively board/VENDOR/BOARD/built-in.o and optionally board/vendor/common/built-in.o