Re: [PATCH v2 6/7] powerpc/64/build: merge .got and .toc input sections
From: Christophe Leroy <hidden>
Date: 2022-09-16 18:46:25
Le 16/09/2022 à 06:07, Nicholas Piggin a écrit :
quoted hunk ↗ jump to hunk
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 = .;
#ifndef CONFIG_RELOCATABLE __prom_init_toc_start = .; arch/powerpc/kernel/prom_init.o*(.toc) __prom_init_toc_end = .; #endif - *(.toc) } SOFT_MASK_TABLE(8)