Re: [PATCH v4 14/17] arm/build: Warn on orphan section placement

From: Arvind Sankar
Date: Mon Jun 29 2020 - 14:54:50 EST


On Mon, Jun 29, 2020 at 07:07:04PM +0100, Russell King - ARM Linux admin wrote:
> On Mon, Jun 29, 2020 at 11:54:01AM -0400, Arvind Sankar wrote:
> > On Sun, Jun 28, 2020 at 11:18:37PM -0700, Kees Cook wrote:
> > > We don't want to depend on the linker's orphan section placement
> > > heuristics as these can vary between linkers, and may change between
> > > versions. All sections need to be explicitly named in the linker
> > > script.
> > >
> > > Specifically, this would have made a recently fixed bug very obvious:
> > >
> > > ld: warning: orphan section `.fixup' from `arch/arm/lib/copy_from_user.o' being placed in section `.fixup'
> > >
> > > Discard unneeded sections .iplt, .rel.iplt, .igot.plt, and .modinfo.
> > >
> > > Add missing text stub sections .vfp11_veneer and .v4_bx.
> > >
> > > Add debug sections explicitly.
> > >
> > > Finally enable orphan section warning.
> >
> > This is unrelated to this patch as such, but I noticed that ARM32/64 places
> > the .got section inside .text -- is that expected on ARM?
>
> Do you mean in general, in the kernel vmlinux, in the decompressor
> vmlinux or ... ?
>

Sorry, in the kernel vmlinux. ARM_TEXT includes *(.got) for 32-bit, and
the 64-bit vmlinux.lds.S includes it in .text as well. The decompressor
for 32-bit keeps it separate for non-EFI stub kernel and puts it inside
.data for EFI stub.