[PATCH v3 1/3] powerpc: Discard more sections in linker script
Joel Stanley
joel at jms.id.au
Tue Dec 11 09:28:52 AEDT 2018
Building the ppc64 kernel with a modern binutils results in this
warning:
powerpc64le-linux-gnu-ld: warning: orphan section `.gnu.hash' from
`linker stubs' being placed in section `.gnu.hash'
Alan Modra <amodra at gmail.com> explains:
> .gnu.hash, like .hash, is used by glibc ld.so for dynamic symbol
> lookup. I imagine you don't need either section in a kernel, so
> discarding both sounds reasonable. Likely you could discard .interp
> and .dynstr too, and .dynsym when !CONFIG_PPC32.
Reported-by: Stephen Rothwell <sfr at canb.auug.org.au>
Signed-off-by: Joel Stanley <joel at jms.id.au>
---
See https://lore.kernel.org/lkml/CACPK8Xft3n5KkpTjN3=7_VUCXHFcK7mxvZm2Rrqu7tppcBoyOg@mail.gmail.com/T/#m58532c86cf0c7b4fb01cc1fe724e48d4c7d8e4a7
v3: Add dynstr hunk to this patch (it was incorrectly left in patch 2)
---
arch/powerpc/kernel/vmlinux.lds.S | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 434581bcd5b4..779b8b3075a1 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -273,14 +273,11 @@ SECTIONS
#endif
*(.dynsym)
}
- .dynstr : AT(ADDR(.dynstr) - LOAD_OFFSET) { *(.dynstr) }
.dynamic : AT(ADDR(.dynamic) - LOAD_OFFSET)
{
__dynamic_start = .;
*(.dynamic)
}
- .hash : AT(ADDR(.hash) - LOAD_OFFSET) { *(.hash) }
- .interp : AT(ADDR(.interp) - LOAD_OFFSET) { *(.interp) }
.rela.dyn : AT(ADDR(.rela.dyn) - LOAD_OFFSET)
{
__rela_dyn_start = .;
@@ -388,5 +385,8 @@ SECTIONS
*(.gnu.version*)
*(.gnu.attributes)
*(.eh_frame)
+ *(.hash .gnu.hash)
+ *(.interp)
+ *(.dynstr)
}
}
--
2.19.1
More information about the Linuxppc-dev
mailing list