
Hi Daniel,
On Fri, 28 Mar 2014 21:35:37 +0100 Daniel Schwierzeck daniel.schwierzeck@gmail.com wrote:
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
I am not sure if that change has an impact to the size of outputs. Anyway, in your plan, how would they be fixed?
BTW,
while read -r status arch cpu soc vendor board target options maintainers; do case $status in Active|Orphan) ;; *) continue ;; esac
if [ "$board" = "-" ]; then board=$target fi BOARD=${board^^} BOARD=${BOARD/-/_}
This does not work correctly.
The only first occurrence of '-' will be replaced with '_'.
For exampile, "FOO-BAR-BAZ" will be converted to "FOO_BAR-BAZ".
Some makefiles should be fixed.
--- a/board/Makefile +++ b/board/Makefile @@ -11,7 +11,7 @@ obj-$(CONFIG_BOARD_BF506F_EZKIT) += bf506f-ezkit/ obj-$(CONFIG_BOARD_BF518F_EZBRD) += bf518f-ezbrd/ obj-$(CONFIG_BOARD_BF525_UCR2) += bf525-ucr2/ obj-$(CONFIG_BOARD_BF526_EZBRD) += bf526-ezbrd/ -obj-$(CONFIG_BOARD_BF527_AD7160-EVAL) += bf527-ad7160-eval/ +obj-$(CONFIG_BOARD_BF527_AD7160_EVAL) += bf527-ad7160-eval/ obj-$(CONFIG_BOARD_BF527_EZKIT) += bf527-ezkit/ obj-$(CONFIG_BOARD_BF527_SDP) += bf527-sdp/ obj-$(CONFIG_BOARD_BF533_EZKIT) += bf533-ezkit/ diff --git a/board/earthlcd/Makefile b/board/earthlcd/Makefile index 61956b4..f618674 100644 --- a/board/earthlcd/Makefile +++ b/board/earthlcd/Makefile @@ -1 +1 @@ -obj-$(CONFIG_BOARD_FAVR_32-EZKIT) += favr-32-ezkit/ +obj-$(CONFIG_BOARD_FAVR_32_EZKIT) += favr-32-ezkit/
Best Regards Masahiro Yamada