lkml.org 
[lkml]   [2009]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/11] x86: convert compressed loader to use __HEAD and HEAD_TEXT macros.
    Date
    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@mit.edu>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    ---
    arch/x86/boot/compressed/head_32.S | 3 ++-
    arch/x86/boot/compressed/head_64.S | 3 ++-
    arch/x86/boot/compressed/vmlinux.lds.S | 6 ++++--
    3 files changed, 8 insertions(+), 4 deletions(-)

    diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
    index 85bd328..83df56f 100644
    --- a/arch/x86/boot/compressed/head_32.S
    +++ b/arch/x86/boot/compressed/head_32.S
    @@ -23,13 +23,14 @@
    */
    .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
    /* test KEEP_SEGMENTS flag to see if the bootloader is asking
    diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
    index ed4a829..a788a91 100644
    --- a/arch/x86/boot/compressed/head_64.S
    +++ b/arch/x86/boot/compressed/head_64.S
    @@ -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
    diff --git a/arch/x86/boot/compressed/vmlinux.lds.S b/arch/x86/boot/compressed/vmlinux.lds.S
    index ffcb191..093fb4f 100644
    --- a/arch/x86/boot/compressed/vmlinux.lds.S
    +++ b/arch/x86/boot/compressed/vmlinux.lds.S
    @@ -1,3 +1,5 @@
    +#include <asm-generic/vmlinux.lds.h>
    +
    OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)

    #ifdef CONFIG_X86_64
    @@ -14,9 +16,9 @@ SECTIONS
    * address 0.
    */
    . = 0;
    - .text.head : {
    + .head.text : {
    _head = . ;
    - *(.text.head)
    + HEAD_TEXT
    _ehead = . ;
    }
    .rodata.compressed : {
    --
    1.6.2.1


    \
     
     \ /
      Last update: 2009-05-01 02:19    [W:0.038 / U:29.908 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site