The following commit has been merged into the core/build branch of tip:

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

x86/boot/compressed: Reorganize zero-size section asserts

For readability, move the zero-sized sections to the end after DISCARDS.

Signed-off-by: Kees Cook <keesc...@chromium.org>
Signed-off-by: Ingo Molnar <mi...@kernel.org>
Link: https://lore.kernel.org/r/20200821194310.3089815-27-keesc...@chromium.org
---
 arch/x86/boot/compressed/vmlinux.lds.S | 44 ++++++++++++++-----------
 1 file changed, 26 insertions(+), 18 deletions(-)

diff --git a/arch/x86/boot/compressed/vmlinux.lds.S 
b/arch/x86/boot/compressed/vmlinux.lds.S
index 3c2ee9a..ca544a1 100644
--- a/arch/x86/boot/compressed/vmlinux.lds.S
+++ b/arch/x86/boot/compressed/vmlinux.lds.S
@@ -42,19 +42,6 @@ SECTIONS
                *(.rodata.*)
                _erodata = . ;
        }
-       .rel.dyn : {
-               *(.rel.*)
-       }
-       .rela.dyn : {
-               *(.rela.*)
-       }
-       .got : {
-               *(.got)
-       }
-       .got.plt : {
-               *(.got.plt)
-       }
-
        .data : {
                _data = . ;
                *(.data)
@@ -85,13 +72,34 @@ SECTIONS
        ELF_DETAILS
 
        DISCARDS
-}
 
-ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
+       .got.plt (INFO) : {
+               *(.got.plt)
+       }
+       ASSERT(SIZEOF(.got.plt) == 0 ||
 #ifdef CONFIG_X86_64
-ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT 
entries detected!")
+              SIZEOF(.got.plt) == 0x18,
 #else
-ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0xc, "Unexpected GOT/PLT 
entries detected!")
+              SIZEOF(.got.plt) == 0xc,
 #endif
+              "Unexpected GOT/PLT entries detected!")
+
+       /*
+        * Sections that should stay zero sized, which is safer to
+        * explicitly check instead of blindly discarding.
+        */
+       .got : {
+               *(.got)
+       }
+       ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
+
+       .rel.dyn : {
+               *(.rel.*)
+       }
+       ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) 
detected!")
 
-ASSERT(SIZEOF(.rel.dyn) == 0 && SIZEOF(.rela.dyn) == 0, "Unexpected run-time 
relocations detected!")
+       .rela.dyn : {
+               *(.rela.*)
+       }
+       ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) 
detected!")
+}

Reply via email to