Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
[pandora-kernel.git] / arch / mips / kernel / vmlinux.lds.S
index 84f9a4c..afb119f 100644 (file)
@@ -5,6 +5,10 @@
 #define mips mips
 OUTPUT_ARCH(mips)
 ENTRY(kernel_entry)
+PHDRS {
+       text PT_LOAD FLAGS(7);  /* RWX */
+       note PT_NOTE FLAGS(4);  /* R__ */
+}
 jiffies = JIFFIES;
 
 SECTIONS
@@ -21,7 +25,6 @@ SECTIONS
         *   >= 0xa800 0000 0030 0000 otherwise
         */
 
-       /* . = 0xa800000000300000; */
        /* . = 0xa800000000300000; */
        . = 0xffffffff80300000;
 #endif
@@ -32,9 +35,11 @@ SECTIONS
                TEXT_TEXT
                SCHED_TEXT
                LOCK_TEXT
+               KPROBES_TEXT
+               *(.text.*)
                *(.fixup)
                *(.gnu.warning)
-       } =0
+       } :text = 0
        _etext = .;     /* End of text section */
 
        /* Exception table */
@@ -51,25 +56,31 @@ SECTIONS
                *(__dbe_table)
                __stop___dbe_table = .;
        }
+
+       NOTES :text :note
+       .dummy : { *(.dummy) } :text
+
        RODATA
 
        /* writeable */
        .data : {       /* Data */
-         . = . + DATAOFFSET;           /* for CONFIG_MAPPED_KERNEL */
-         /*
-          * This ALIGN is needed as a workaround for a bug a gcc bug upto 4.1 which
-          * limits the maximum alignment to at most 32kB and results in the following
-          * warning:
-          *
-          *  CC      arch/mips/kernel/init_task.o
-          * arch/mips/kernel/init_task.c:30: warning: alignment of ‘init_thread_union’
-          * is greater than maximum object file alignment.  Using 32768
-          */
-         . = ALIGN(_PAGE_SIZE);
-         *(.data.init_task)
-
-         DATA_DATA
-         CONSTRUCTORS
+               . = . + DATAOFFSET;             /* for CONFIG_MAPPED_KERNEL */
+               /*
+                * This ALIGN is needed as a workaround for a bug a
+                * gcc bug upto 4.1 which limits the maximum alignment
+                * to at most 32kB and results in the following
+                * warning:
+                *
+                *  CC      arch/mips/kernel/init_task.o
+                * arch/mips/kernel/init_task.c:30: warning: alignment
+                * of ‘init_thread_union’ is greater than maximum
+                * object file alignment.  Using 32768
+                */
+               . = ALIGN(_PAGE_SIZE);
+               *(.data.init_task)
+
+               DATA_DATA
+               CONSTRUCTORS
        }
        _gp = . + 0x8000;
        .lit8 : {
@@ -104,11 +115,11 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(16);
        .init.setup : {
@@ -134,10 +145,10 @@ SECTIONS
         * references from .rodata
         */
        .exit.text : {
-               *(.exit.text)
+               EXIT_TEXT
        }
        .exit.data : {
-               *(.exit.data)
+               EXIT_DATA
        }
 #if defined(CONFIG_BLK_DEV_INITRD)
        . = ALIGN(_PAGE_SIZE);
@@ -201,7 +212,4 @@ SECTIONS
                *(.gptab.bss)
                *(.gptab.sbss)
        }
-       .note : {
-               *(.note)
-       }
 }