lkml.org 
[lkml]   [2020]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip: core/build] x86/boot/compressed: Remove, discard, or assert for unwanted sections
    The following commit has been merged into the core/build branch of tip:

    Commit-ID: d1c0272bc1c068f8c2cb3d1b395173602b0df6e7
    Gitweb: https://git.kernel.org/tip/d1c0272bc1c068f8c2cb3d1b395173602b0df6e7
    Author: Kees Cook <keescook@chromium.org>
    AuthorDate: Fri, 21 Aug 2020 12:43:08 -07:00
    Committer: Ingo Molnar <mingo@kernel.org>
    CommitterDate: Tue, 01 Sep 2020 10:03:18 +02:00

    x86/boot/compressed: Remove, discard, or assert for unwanted sections

    In preparation for warning on orphan sections, stop the linker from
    generating the .eh_frame* sections, discard unwanted non-zero-sized
    generated sections, and enforce other expected-to-be-zero-sized sections
    (since discarding them might hide problems with them suddenly gaining
    unexpected entries).

    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20200821194310.3089815-28-keescook@chromium.org
    ---
    arch/x86/boot/compressed/Makefile | 1 +
    arch/x86/boot/compressed/vmlinux.lds.S | 14 ++++++++++++--
    2 files changed, 13 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
    index 753d572..5b7f6e1 100644
    --- a/arch/x86/boot/compressed/Makefile
    +++ b/arch/x86/boot/compressed/Makefile
    @@ -50,6 +50,7 @@ GCOV_PROFILE := n
    UBSAN_SANITIZE :=n

    KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE)
    +KBUILD_LDFLAGS += $(call ld-option,--no-ld-generated-unwind-info)
    # Compressed kernel should be built as PIE since it may be loaded at any
    # address by the bootloader.
    LDFLAGS_vmlinux := -pie $(call ld-option, --no-dynamic-linker)
    diff --git a/arch/x86/boot/compressed/vmlinux.lds.S b/arch/x86/boot/compressed/vmlinux.lds.S
    index ca544a1..02f6feb 100644
    --- a/arch/x86/boot/compressed/vmlinux.lds.S
    +++ b/arch/x86/boot/compressed/vmlinux.lds.S
    @@ -72,6 +72,11 @@ SECTIONS
    ELF_DETAILS

    DISCARDS
    + /DISCARD/ : {
    + *(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss)
    + *(.hash) *(.gnu.hash)
    + *(.note.*)
    + }

    .got.plt (INFO) : {
    *(.got.plt)
    @@ -93,13 +98,18 @@ SECTIONS
    }
    ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")

    + .plt : {
    + *(.plt) *(.plt.*)
    + }
    + ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
    +
    .rel.dyn : {
    - *(.rel.*)
    + *(.rel.*) *(.rel_*)
    }
    ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) detected!")

    .rela.dyn : {
    - *(.rela.*)
    + *(.rela.*) *(.rela_*)
    }
    ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
    }
    \
     
     \ /
      Last update: 2020-09-01 16:50    [W:7.683 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site