From: Dave Martin <Dave.Martin@arm.com>
To: Will Deacon <will@kernel.org>
Cc: Ard Biesheuvel <ardb@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
linux-arch <linux-arch@vger.kernel.org>,
linux-efi <linux-efi@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
Fangrui Song <maskray@google.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Masahiro Yamada <masahiroy@kernel.org>, X86 ML <x86@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Russell King <linux@armlinux.org.uk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
clang-built-linux <clang-built-linux@googlegroups.com>,
Arvind Sankar <nivedita@alum.mit.edu>,
Ingo Molnar <mingo@redhat.com>, James Morse <james.morse@arm.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@suse.de>
Subject: Re: [PATCH v3 3/9] efi/libstub: Remove .note.gnu.property
Date: Wed, 24 Jun 2020 14:48:55 +0100 [thread overview]
Message-ID: <20200624134854.GF25945@arm.com> (raw)
In-Reply-To: <20200624112647.GC6134@willie-the-truck>
On Wed, Jun 24, 2020 at 12:26:47PM +0100, Will Deacon wrote:
> On Wed, Jun 24, 2020 at 12:46:32PM +0200, Ard Biesheuvel wrote:
> > On Wed, 24 Jun 2020 at 12:44, Will Deacon <will@kernel.org> wrote:
> > > On Tue, Jun 23, 2020 at 09:44:11PM -0700, Kees Cook wrote:
> > > > On Tue, Jun 23, 2020 at 08:31:42PM -0700, 'Fangrui Song' via Clang Built Linux wrote:
> > > > > arch/arm64/Kconfig enables ARM64_PTR_AUTH by default. When the config is on
> > > > >
> > > > > ifeq ($(CONFIG_ARM64_BTI_KERNEL),y)
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI) := -mbranch-protection=pac-ret+leaf+bti
> > > > > else
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET) := -mbranch-protection=pac-ret+leaf
> > > > > endif
> > > > >
> > > > > This option creates .note.gnu.property:
> > > > >
> > > > > % readelf -n drivers/firmware/efi/libstub/efi-stub.o
> > > > >
> > > > > Displaying notes found in: .note.gnu.property
> > > > > Owner Data size Description
> > > > > GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
> > > > > Properties: AArch64 feature: PAC
> > > > >
> > > > > If .note.gnu.property is not desired in drivers/firmware/efi/libstub, specifying
> > > > > -mbranch-protection=none can override -mbranch-protection=pac-ret+leaf
> > > >
> > > > We want to keep the branch protection enabled. But since it's not a
> > > > "regular" ELF, we don't need to keep the property that identifies the
> > > > feature.
> > >
> > > 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.
>
> > 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.
Cheers
---Dave
WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com>
To: Will Deacon <will@kernel.org>
Cc: Ard Biesheuvel <ardb@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
linux-arch <linux-arch@vger.kernel.org>,
linux-efi <linux-efi@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
Fangrui Song <maskray@google.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Masahiro Yamada <masahiroy@kernel.org>, X86 ML <x86@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Russell King <linux@armlinux.org.uk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
clang-built-linux <clang-built-linux@googlegroups.com>,
Arvind Sankar <nivedita@alum.mit.edu>,
Ingo Molnar <mingo@redhat.com>, James Morse <james.morse@arm.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@suse.de>,
Peter Collingbourne <pcc@google.com>,
Nathan Chancellor <natechancellor@gmail.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v3 3/9] efi/libstub: Remove .note.gnu.property
Date: Wed, 24 Jun 2020 14:48:55 +0100 [thread overview]
Message-ID: <20200624134854.GF25945@arm.com> (raw)
Message-ID: <20200624134855.GIt-ocmfIummP9nhP7y0DNo89-wwvzMQkzbS0Wzj7vU@z> (raw)
In-Reply-To: <20200624112647.GC6134@willie-the-truck>
On Wed, Jun 24, 2020 at 12:26:47PM +0100, Will Deacon wrote:
> On Wed, Jun 24, 2020 at 12:46:32PM +0200, Ard Biesheuvel wrote:
> > On Wed, 24 Jun 2020 at 12:44, Will Deacon <will@kernel.org> wrote:
> > > On Tue, Jun 23, 2020 at 09:44:11PM -0700, Kees Cook wrote:
> > > > On Tue, Jun 23, 2020 at 08:31:42PM -0700, 'Fangrui Song' via Clang Built Linux wrote:
> > > > > arch/arm64/Kconfig enables ARM64_PTR_AUTH by default. When the config is on
> > > > >
> > > > > ifeq ($(CONFIG_ARM64_BTI_KERNEL),y)
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI) := -mbranch-protection=pac-ret+leaf+bti
> > > > > else
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET) := -mbranch-protection=pac-ret+leaf
> > > > > endif
> > > > >
> > > > > This option creates .note.gnu.property:
> > > > >
> > > > > % readelf -n drivers/firmware/efi/libstub/efi-stub.o
> > > > >
> > > > > Displaying notes found in: .note.gnu.property
> > > > > Owner Data size Description
> > > > > GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
> > > > > Properties: AArch64 feature: PAC
> > > > >
> > > > > If .note.gnu.property is not desired in drivers/firmware/efi/libstub, specifying
> > > > > -mbranch-protection=none can override -mbranch-protection=pac-ret+leaf
> > > >
> > > > We want to keep the branch protection enabled. But since it's not a
> > > > "regular" ELF, we don't need to keep the property that identifies the
> > > > feature.
> > >
> > > 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.
>
> > 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.
Cheers
---Dave
WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com>
To: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
linux-efi <linux-efi@vger.kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Arvind Sankar <nivedita@alum.mit.edu>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arch <linux-arch@vger.kernel.org>,
Fangrui Song <maskray@google.com>,
Masahiro Yamada <masahiroy@kernel.org>, X86 ML <x86@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ard Biesheuvel <ardb@kernel.org>,
clang-built-linux <clang-built-linux@googlegroups.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@suse.de>,
Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>,
Nathan Chancellor <natechancellor@gmail.com>,
Peter Collingbourne <pcc@google.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
James Morse <james.morse@arm.com>
Subject: Re: [PATCH v3 3/9] efi/libstub: Remove .note.gnu.property
Date: Wed, 24 Jun 2020 14:48:55 +0100 [thread overview]
Message-ID: <20200624134854.GF25945@arm.com> (raw)
In-Reply-To: <20200624112647.GC6134@willie-the-truck>
On Wed, Jun 24, 2020 at 12:26:47PM +0100, Will Deacon wrote:
> On Wed, Jun 24, 2020 at 12:46:32PM +0200, Ard Biesheuvel wrote:
> > On Wed, 24 Jun 2020 at 12:44, Will Deacon <will@kernel.org> wrote:
> > > On Tue, Jun 23, 2020 at 09:44:11PM -0700, Kees Cook wrote:
> > > > On Tue, Jun 23, 2020 at 08:31:42PM -0700, 'Fangrui Song' via Clang Built Linux wrote:
> > > > > arch/arm64/Kconfig enables ARM64_PTR_AUTH by default. When the config is on
> > > > >
> > > > > ifeq ($(CONFIG_ARM64_BTI_KERNEL),y)
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI) := -mbranch-protection=pac-ret+leaf+bti
> > > > > else
> > > > > branch-prot-flags-$(CONFIG_CC_HAS_BRANCH_PROT_PAC_RET) := -mbranch-protection=pac-ret+leaf
> > > > > endif
> > > > >
> > > > > This option creates .note.gnu.property:
> > > > >
> > > > > % readelf -n drivers/firmware/efi/libstub/efi-stub.o
> > > > >
> > > > > Displaying notes found in: .note.gnu.property
> > > > > Owner Data size Description
> > > > > GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
> > > > > Properties: AArch64 feature: PAC
> > > > >
> > > > > If .note.gnu.property is not desired in drivers/firmware/efi/libstub, specifying
> > > > > -mbranch-protection=none can override -mbranch-protection=pac-ret+leaf
> > > >
> > > > We want to keep the branch protection enabled. But since it's not a
> > > > "regular" ELF, we don't need to keep the property that identifies the
> > > > feature.
> > >
> > > 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.
>
> > 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.
Cheers
---Dave
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-06-24 13:49 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-24 1:49 [PATCH v3 0/9] Warn on orphan section placement Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 1/9] vmlinux.lds.h: Add .gnu.version* to DISCARDS Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 2/9] vmlinux.lds.h: Add .symtab, .strtab, and .shstrtab to STABS_DEBUG Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 15:39 ` Arvind Sankar
2020-06-24 15:39 ` Arvind Sankar
2020-06-24 15:39 ` Arvind Sankar
2020-06-24 16:16 ` Fangrui Song
2020-06-24 16:16 ` Fangrui Song
2020-06-24 17:11 ` Arvind Sankar
2020-06-24 17:11 ` Arvind Sankar
2020-06-24 17:11 ` Arvind Sankar
2020-06-24 17:26 ` Fangrui Song
2020-06-24 17:26 ` Fangrui Song
2020-06-24 17:35 ` Arvind Sankar
2020-06-24 17:35 ` Arvind Sankar
2020-06-24 17:35 ` Arvind Sankar
2020-06-24 1:49 ` [PATCH v3 3/9] efi/libstub: Remove .note.gnu.property Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 3:31 ` Fangrui Song
2020-06-24 3:31 ` Fangrui Song
2020-06-24 4:44 ` Kees Cook
2020-06-24 4:44 ` Kees Cook
2020-06-24 10:43 ` Will Deacon
2020-06-24 10:43 ` Will Deacon
2020-06-24 10:46 ` Ard Biesheuvel
2020-06-24 10:46 ` Ard Biesheuvel
2020-06-24 10:46 ` Ard Biesheuvel
2020-06-24 11:26 ` Will Deacon
2020-06-24 11:26 ` Will Deacon
2020-06-24 11:26 ` Will Deacon
2020-06-24 13:48 ` Dave Martin [this message]
2020-06-24 13:48 ` Dave Martin
2020-06-24 13:48 ` Dave Martin
2020-06-24 15:26 ` Will Deacon
2020-06-24 15:26 ` Will Deacon
2020-06-24 15:26 ` Will Deacon
2020-06-24 16:26 ` Dave Martin
2020-06-24 16:26 ` Dave Martin
2020-06-24 16:26 ` Dave Martin
2020-06-24 15:21 ` Kees Cook
2020-06-24 15:21 ` Kees Cook
2020-06-24 15:21 ` Kees Cook
2020-06-24 15:31 ` Ard Biesheuvel
2020-06-24 15:31 ` Ard Biesheuvel
2020-06-24 15:31 ` Ard Biesheuvel
2020-06-24 15:45 ` Kees Cook
2020-06-24 15:45 ` Kees Cook
2020-06-24 15:45 ` Kees Cook
2020-06-24 15:48 ` Ard Biesheuvel
2020-06-24 15:48 ` Ard Biesheuvel
2020-06-24 15:48 ` Ard Biesheuvel
2020-06-24 16:29 ` Dave Martin
2020-06-24 16:29 ` Dave Martin
2020-06-24 16:29 ` Dave Martin
2020-06-24 16:40 ` Ard Biesheuvel
2020-06-24 16:40 ` Ard Biesheuvel
2020-06-24 16:40 ` Ard Biesheuvel
2020-06-24 17:16 ` Dave Martin
2020-06-24 17:16 ` Dave Martin
2020-06-24 17:16 ` Dave Martin
2020-06-24 18:23 ` Ard Biesheuvel
2020-06-24 18:23 ` Ard Biesheuvel
2020-06-24 18:23 ` Ard Biesheuvel
2020-06-24 18:57 ` Ard Biesheuvel
2020-06-24 18:57 ` Ard Biesheuvel
2020-06-24 18:57 ` Ard Biesheuvel
2020-06-24 1:49 ` [PATCH v3 4/9] x86/build: Warn on orphan section placement Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 18:36 ` kernel test robot
2020-06-27 15:44 ` Kees Cook
2020-06-27 15:44 ` Kees Cook
2020-06-29 14:54 ` Marco Elver
2020-06-29 14:54 ` Marco Elver
2020-06-29 15:26 ` Kees Cook
2020-06-29 15:26 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 5/9] x86/boot: " Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 6/9] arm/build: " Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 7/9] arm/boot: " Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 8/9] arm64/build: Use common DISCARDS in linker script Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 1:49 ` [PATCH v3 9/9] arm64/build: Warn on orphan section placement Kees Cook
2020-06-24 1:49 ` Kees Cook
2020-06-24 7:57 ` Will Deacon
2020-06-24 7:57 ` Will Deacon
2020-06-24 15:36 ` Kees Cook
2020-06-24 15:36 ` Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200624134854.GF25945@arm.com \
--to=dave.martin@arm.com \
--cc=ardb@kernel.org \
--cc=bp@suse.de \
--cc=catalin.marinas@arm.com \
--cc=clang-built-linux@googlegroups.com \
--cc=james.morse@arm.com \
--cc=keescook@chromium.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mark.rutland@arm.com \
--cc=masahiroy@kernel.org \
--cc=maskray@google.com \
--cc=mingo@redhat.com \
--cc=ndesaulniers@google.com \
--cc=nivedita@alum.mit.edu \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.