x86: convert compressed loader to use __HEAD and HEAD_TEXT macros.
authorTim Abbott <tabbott@ksplice.com>
Wed, 16 Sep 2009 20:44:27 +0000 (16:44 -0400)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 18 Sep 2009 17:21:49 +0000 (10:21 -0700)
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text".

Linus suggested that we merge the ".text.head" section with ".text"
(presumably while preserving the fact that the head code starts at 0).
When I tried this it caused the kernel to not boot.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/boot/compressed/head_32.S
arch/x86/boot/compressed/head_64.S
arch/x86/boot/compressed/vmlinux.lds.S

index 75e4f001e7061e5d3036197ac202dbee8e3d07a2..f543b70ffae25b24e89c15bc03b17576124efc7b 100644 (file)
  */
        .text
 
+#include <linux/init.h>
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page_types.h>
 #include <asm/boot.h>
 #include <asm/asm-offsets.h>
 
-       .section ".text.head","ax",@progbits
+       __HEAD
 ENTRY(startup_32)
        cld
        /*
index f62c284db9eb5c94edf1df794b26e13ace0b4113..077e1b69198e75d2a14fe7cfe0ff8a421f8686a3 100644 (file)
@@ -24,6 +24,7 @@
        .code32
        .text
 
+#include <linux/init.h>
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/pgtable_types.h>
@@ -33,7 +34,7 @@
 #include <asm/processor-flags.h>
 #include <asm/asm-offsets.h>
 
-       .section ".text.head"
+       __HEAD
        .code32
 ENTRY(startup_32)
        cld
index cc353e1b3ffd49185f2cf0683e21894462f0c1de..f4193bb487825706146c0baee980e6c962955231 100644 (file)
@@ -1,3 +1,5 @@
+#include <asm-generic/vmlinux.lds.h>
+
 OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
 
 #undef i386
@@ -18,9 +20,9 @@ SECTIONS
         * address 0.
         */
        . = 0;
-       .text.head : {
+       .head.text : {
                _head = . ;
-               *(.text.head)
+               HEAD_TEXT
                _ehead = . ;
        }
        .rodata.compressed : {