Thread (34 messages) 34 messages, 6 authors, 2020-06-24

Re: [PATCH v3 3/9] efi/libstub: Remove .note.gnu.property

From: Dave Martin <Dave.Martin@arm.com>
Date: 2020-06-24 16:27:06
Also in: linux-arch, linux-efi, lkml

On Wed, Jun 24, 2020 at 04:26:46PM +0100, Will Deacon wrote:
On Wed, Jun 24, 2020 at 02:48:55PM +0100, Dave Martin wrote:
quoted
On Wed, Jun 24, 2020 at 12:26:47PM +0100, Will Deacon wrote:
quoted
On Wed, Jun 24, 2020 at 12:46:32PM +0200, Ard Biesheuvel wrote:
quoted
On Wed, 24 Jun 2020 at 12:44, Will Deacon [off-list ref] wrote:
quoted
For the kernel Image, how do we remove these sections? The objcopy flags
in arch/arm64/boot/Makefile look both insufficient and out of date. My
vmlinux ends up with both a ".notes" and a ".init.note.gnu.property"
segment.
The latter is the fault of the libstub make rules, that prepend .init
to all section names.
Hmm. I tried adding -mbranch-protection=none to arm64 cflags for the stub,
but I still see this note in vmlinux. It looks like it comes in via the
stub copy of lib-ctype.o, but I don't know why that would force the
note. The cflags look ok to me [1] and I confirmed that the note is
being generated by the compiler.
quoted
I'm not sure if there is a point to having PAC and/or BTI in the EFI
stub, given that it runs under the control of the firmware, with its
memory mappings and PAC configuration etc.
Agreed, I just can't figure out how to get rid of the note.
Because this section is generated by the linker itself I think you might
have to send it to /DISCARD/ in the link, or strip it explicitly after
linking.
Right, but why is the linker generating that section in the first place? I'm
compiling with -mbranch-protection=none and all the other objects linked
into the stub do not have the section.

I wonder if it's because lib/ctype.c doesn't have any executable code...
What compiler and flags are you using for the affected object?  I don't
see this with gcc so far.

I wonder if this is a hole in the specs: the property could logically
be emitted in any codeless object, since turning on BTI will obviously
not break that object.

For different linkers and compilers to interoperate though, the specs
would need to say what to do in that situation.

Cheers
---Dave


Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help