On Sat, Sep 05, 2020 at 06:48:35PM -0400, Arvind Sankar wrote: > 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@xxxxxxxxxxxx> > > --- > > 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. Also, with LLD 10.0.1 which is going to be the minimum supported version, the relocation sections etc still generate warnings. ld.lld: warning: arch/x86/video/built-in.a(fbdev.o):(.rela.orc_unwind_ip) is being placed in '.rela.orc_unwind_ip' ld.lld: warning: .tmp_vmlinux.kallsyms2.o:(.rela.rodata) is being placed in '.rela.rodata' ld.lld: warning: <internal>:(.bss.rel.ro) is being placed in '.bss.rel.ro' ld.lld: warning: <internal>:(.eh_frame) is being placed in '.eh_frame' ld.lld: warning: <internal>:(.symtab_shndx) is being placed in '.symtab_shndx'