[PATCH v2 6/7] powerpc/64/build: merge .got and .toc input sections

Michael Ellerman mpe at ellerman.id.au
Sat Sep 17 16:36:54 AEST 2022


Christophe Leroy <christophe.leroy at 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 <npiggin at 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


More information about the Linuxppc-dev mailing list