x86/boot/compressed: Reorganize zero-size section asserts
[linux-2.6-microblaze.git] / 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!")
+}