When CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is enabled we must ensure that we still keep the device tree tables, otherwise we end up unable to probe drivers on systems that do so using device tree & we throw away the bulk of those drivers because they cease to be referenced. Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> --- include/asm-generic/vmlinux.lds.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 3074796..b648d97 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -169,8 +169,8 @@ #define _OF_TABLE_1(name) \ . = ALIGN(8); \ VMLINUX_SYMBOL(__##name##_of_table) = .; \ - *(__##name##_of_table) \ - *(__##name##_of_table_end) + KEEP(*(__##name##_of_table)) \ + KEEP(*(__##name##_of_table_end)) #define CLKSRC_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc) #define IRQCHIP_OF_MATCH_TABLE() OF_TABLE(CONFIG_IRQCHIP, irqchip) -- 2.10.0