Christophe Leroy <christophe.le...@csgroup.eu> writes: > Le 16/09/2022 à 06:07, Nicholas Piggin a écrit : >> Follow the binutils ld internal linker script and merge .got and .toc >> input sections in the .got output section. >> >> Signed-off-by: Nicholas Piggin <npig...@gmail.com> >> --- >> arch/powerpc/kernel/vmlinux.lds.S | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/arch/powerpc/kernel/vmlinux.lds.S >> b/arch/powerpc/kernel/vmlinux.lds.S >> index 737825ae2ae0..3d96d51c8a5f 100644 >> --- a/arch/powerpc/kernel/vmlinux.lds.S >> +++ b/arch/powerpc/kernel/vmlinux.lds.S >> @@ -169,13 +169,12 @@ SECTIONS >> } >> >> .got : AT(ADDR(.got) - LOAD_OFFSET) ALIGN(256) { >> - *(.got) >> + *(.got .toc) > > At the begining I was thinking that this change would jeopardise the > below, but in fact the #ifdef below is pointless, because prom_init.o is > built only when CONFIG_PPC_OF_BOOT_TRAMPOLINE is selected but > CONFIG_PPC_OF_BOOT_TRAMPOLINE selects CONFIG_RELOCATABLE > > So all __prom_init_toc_ stuff can go away : > > arch/powerpc/include/asm/sections.h:extern char __prom_init_toc_start[]; > arch/powerpc/include/asm/sections.h:extern char __prom_init_toc_end[]; > arch/powerpc/kernel/prom_init_check.sh:__prom_init_toc_start > __prom_init_toc_end btext_setup_display TOC. > arch/powerpc/kernel/vmlinux.lds.S: __prom_init_toc_start = .; > arch/powerpc/kernel/vmlinux.lds.S: __prom_init_toc_end = .;
Yes you're right. Missed cleanup by me in 24d33ac5b8ff ("powerpc/64s: Make prom_init require RELOCATABLE"). I'll send a patch tomorrow. cheers