[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