Re: [PATCH v2 6/7] powerpc/64/build: merge .got and .toc input sections
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2022-09-17 06:37:31
Christophe Leroy [off-list ref] writes:
Le 16/09/2022 à 06:07, Nicholas Piggin a écrit :quoted
Follow the binutils ld internal linker script and merge .got and .toc input sections in the .got output section. Signed-off-by: Nicholas Piggin <npiggin@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