board/xilinx/common/board.c is linked into every board that uses the xilinx vendor common library, so the strong ft_board_setup() defined here prevents an individual board from applying its own device tree fixups: adding ft_board_setup() to the board file fails to link with "multiple definition of ft_board_setup".
Mark it __weak, which is the mechanism this file already uses for its other board hooks - board_name_decode(), board_detection(), soc_detection() and board_rng_seed(). No other weak definition of ft_board_setup() exists in the tree, so boards without an override keep linking this implementation and symbol resolution stays unambiguous. Signed-off-by: Sriram Sriram <[email protected]> --- board/xilinx/common/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c index 690991bb435..0e765cc81b4 100644 --- a/board/xilinx/common/board.c +++ b/board/xilinx/common/board.c @@ -695,7 +695,7 @@ int embedded_dtb_select(void) #ifdef CONFIG_OF_BOARD_SETUP #define MAX_RAND_SIZE 8 -int ft_board_setup(void *blob, struct bd_info *bd) +int __weak ft_board_setup(void *blob, struct bd_info *bd) { static const struct node_info nodes[] = { { "arm,pl353-nand-r2p1", MTD_DEV_TYPE_NAND, }, -- 2.49.0
