Message ID | 20200902025347.2504702-1-keescook@chromium.org |
---|---|
Headers | show |
Series | Warn on orphan section placement | expand |
On Tue, Sep 1, 2020 at 7:53 PM Kees Cook <keescook@chromium.org> wrote: > > Hi Ingo, > > The ever-shortening series. ;) Here is "v7", which is just the remaining > Makefile changes to enable orphan section warnings, now updated to > include ld-option calls. > > Thanks for getting this all into -tip! For the series, Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> As the recent ppc vdso boogaloo exposed, what about the vdsos? * arch/x86/entry/vdso/Makefile * arch/arm/vdso/Makefile * arch/arm64/kernel/vdso/Makefile * arch/arm64/kernel/vdso32/Makefile > > -Kees > > v6: https://lore.kernel.org/lkml/20200821194310.3089815-1-keescook@chromium.org/ > v5: https://lore.kernel.org/lkml/20200731230820.1742553-1-keescook@chromium.org/ > v4: https://lore.kernel.org/lkml/20200629061840.4065483-1-keescook@chromium.org/ > v3: https://lore.kernel.org/lkml/20200624014940.1204448-1-keescook@chromium.org/ > v2: https://lore.kernel.org/lkml/20200622205815.2988115-1-keescook@chromium.org/ > v1: https://lore.kernel.org/lkml/20200228002244.15240-1-keescook@chromium.org/ > > Kees Cook (5): > arm64/build: Warn on orphan section placement > arm/build: Warn on orphan section placement > arm/boot: Warn on orphan section placement > x86/build: Warn on orphan section placement > x86/boot/compressed: Warn on orphan section placement > > arch/arm/Makefile | 4 ++++ > arch/arm/boot/compressed/Makefile | 2 ++ > arch/arm64/Makefile | 4 ++++ > arch/x86/Makefile | 4 ++++ > arch/x86/boot/compressed/Makefile | 1 + > 5 files changed, 15 insertions(+) > > -- > 2.25.1 >
On Tue, Sep 01, 2020 at 07:53:46PM -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 handled in the linker script. > > Now that all sections are explicitly handled, enable orphan section > warnings. > > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > arch/x86/Makefile | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index 4346ffb2e39f..154259f18b8b 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -209,6 +209,10 @@ ifdef CONFIG_X86_64 > LDFLAGS_vmlinux += -z max-page-size=0x200000 > endif > > +# We never want expected sections to be placed heuristically by the > +# linker. All sections should be explicitly named in the linker script. > +LDFLAGS_vmlinux += $(call ld-option, --orphan-handling=warn) > + > archscripts: scripts_basic > $(Q)$(MAKE) $(build)=arch/x86/tools relocs > > -- > 2.25.1 > With LLVM=1 and GCOV_KERNEL/GCOV_PROFILE_ALL enabled, there are .eh_frame sections created. I see that KASAN and KCSAN currently discard them. Does GCOV actually need them or should it also discard? Thanks.