[MIPS] Fix linker script to work for non-4K page size.
authorRalf Baechle <ralf@linux-mips.org>
Thu, 2 Feb 2006 14:31:16 +0000 (14:31 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 7 Feb 2006 13:30:26 +0000 (13:30 +0000)
Very much to my surprise Fuxin Zhang reports this is all it takes to get
the kernel to work for page sizes larger than 4kB.  This also paves the
way for support for the R6000 and R8000 which don't support 4kB page size.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/vmlinux.lds.S

index 25cc856d8e7e7ab210b871de0bf5e7c735b171ea..ff699dbb99f730b0a3da89883f96788ee254d160 100644 (file)
@@ -1,4 +1,5 @@
 #include <linux/config.h>
+#include <asm/asm-offsets.h>
 #include <asm-generic/vmlinux.lds.h>
 
 #undef mips            /* CPP really sucks for this job  */
@@ -64,10 +65,10 @@ SECTIONS
      we can shorten the on-disk segment size.  */
   .sdata     : { *(.sdata) }
 
-  . = ALIGN(4096);
+  . = ALIGN(_PAGE_SIZE);
   __nosave_begin = .;
   .data_nosave : { *(.data.nosave) }
-  . = ALIGN(4096);
+  . = ALIGN(_PAGE_SIZE);
   __nosave_end = .;
 
   . = ALIGN(32);
@@ -76,7 +77,7 @@ SECTIONS
   _edata =  .;                 /* End of data section */
 
   /* will be freed after init */
-  . = ALIGN(4096);             /* Init code and data */
+  . = ALIGN(_PAGE_SIZE);               /* Init code and data */
   __init_begin = .;
   .init.text : {
        _sinittext = .;
@@ -105,7 +106,7 @@ SECTIONS
   .con_initcall.init : { *(.con_initcall.init) }
   __con_initcall_end = .;
   SECURITY_INIT
-  . = ALIGN(4096);
+  . = ALIGN(_PAGE_SIZE);
   __initramfs_start = .;
   .init.ramfs : { *(.init.ramfs) }
   __initramfs_end = .;
@@ -113,7 +114,7 @@ SECTIONS
   __per_cpu_start = .;
   .data.percpu  : { *(.data.percpu) }
   __per_cpu_end = .;
-  . = ALIGN(4096);
+  . = ALIGN(_PAGE_SIZE);
   __init_end = .;
   /* freed after init ends here */