[PATCH] powerpc/32: Include .branch_lt in data section

Alan Modra amodra at gmail.com
Wed Nov 14 15:00:46 AEDT 2018


On Wed, Nov 14, 2018 at 01:32:18PM +1030, Joel Stanley wrote:
> When building a 32 bit powerpc kernel with Binutils 2.31.1 this warning
> is emitted:
> 
>  powerpc-linux-gnu-ld: warning: orphan section `.branch_lt' from
>  `arch/powerpc/kernel/head_44x.o' being placed in section `.branch_lt'
> 
> As of binutils commit 2d7ad24e8726 ("Support PLT16 relocs against local
> symbols")[1], 32 bit targets can produce .branch_lt sections in their
> output.
> 
> Include these symbols in the .data section as the ppc64 kernel does.
> 
> [1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=2d7ad24e8726ba4c45c9e67be08223a146a837ce
> Signed-off-by: Joel Stanley <joel at jms.id.au>
Reviewed-by: Alan Modra <amodra at gmail.com>

Looks fine to me.

> ---
> I wasn't sure where this should go or if the ordering matters.

The usual answer is: "Look at where the section goes in the standard
linker scripts."   But that doesn't apply here.  The section will be
empty for a kernel build so it doesn't matter where it goes.

> ---
>  arch/powerpc/kernel/vmlinux.lds.S | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
> index 434581bcd5b4..6d5fd1b95311 100644
> --- a/arch/powerpc/kernel/vmlinux.lds.S
> +++ b/arch/powerpc/kernel/vmlinux.lds.S
> @@ -313,6 +313,7 @@ SECTIONS
>  		*(.sdata2)
>  		*(.got.plt) *(.got)
>  		*(.plt)
> +		*(.branch_lt)
>  	}
>  #else
>  	.data : AT(ADDR(.data) - LOAD_OFFSET) {
> -- 
> 2.19.1

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Linuxppc-dev mailing list