x86/boot/compressed: Reorganize zero-size section asserts
authorKees Cook <keescook@chromium.org>
Fri, 21 Aug 2020 19:43:07 +0000 (12:43 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 1 Sep 2020 08:03:18 +0000 (10:03 +0200)
For readability, move the zero-sized sections to the end after DISCARDS.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200821194310.3089815-27-keescook@chromium.org
arch/x86/boot/compressed/vmlinux.lds.S

index 3c2ee9a..ca544a1 100644 (file)
@@ -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!")
+}