powerpc: Reduce the 32/64-bit diffs in vmlinux.lds.S
authorPaul Mackerras <paulus@samba.org>
Mon, 10 Oct 2005 12:38:46 +0000 (22:38 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 10 Oct 2005 12:38:46 +0000 (22:38 +1000)
Also adds the definition of the _sdata symbol to the ppc64 vmlinux.lds.S.

Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/vmlinux.lds.S
arch/ppc64/kernel/vmlinux.lds.S

index d0239bf8d4cc08152f0dd3a85a771add88fb49b1..d4dfcfbce27258fe0bff7683d60f20441a7d8bf2 100644 (file)
@@ -1,6 +1,8 @@
 #include <linux/config.h>
 #ifdef CONFIG_PPC64
 #include <asm/page.h>
+#else
+#define PAGE_SIZE      4096
 #endif
 #include <asm-generic/vmlinux.lds.h>
 
@@ -16,9 +18,7 @@ SECTIONS
   /* Sections to be discarded. */
   /DISCARD/ : {
     *(.exitcall.exit)
-#ifdef CONFIG_PPC32
     *(.exit.data)
-#endif
   }
 
 
@@ -49,16 +49,10 @@ SECTIONS
   .plt : { *(.plt) }
 #endif
   .text : {
-#ifdef CONFIG_PPC64
     *(.text .text.*)
-#else
-    *(.text)
-#endif
     SCHED_TEXT
     LOCK_TEXT
-#ifdef CONFIG_PPC64
     KPROBES_TEXT
-#endif
     *(.fixup)
 #ifdef CONFIG_PPC32
     *(.got1)
@@ -106,7 +100,7 @@ SECTIONS
 
 #ifdef CONFIG_PPC32
   /* Read-write section, merged into data segment: */
-  . = ALIGN(4096);
+  . = ALIGN(PAGE_SIZE);
   _sdata = .;
   .data    :
   {
@@ -119,10 +113,10 @@ SECTIONS
     CONSTRUCTORS
   }
 
-  . = ALIGN(4096);
+  . = ALIGN(PAGE_SIZE);
   __nosave_begin = .;
   .data_nosave : { *(.data.nosave) }
-  . = ALIGN(4096);
+  . = ALIGN(PAGE_SIZE);
   __nosave_end = .;
 
   . = ALIGN(32);
@@ -133,12 +127,10 @@ SECTIONS
 
   . = ALIGN(8192);
   .data.init_task : { *(.data.init_task) }
+#endif
 
-  . = ALIGN(4096);
-#else
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);
-#endif
   __init_begin = .;
   .init.text : {
        _sinittext = .;
@@ -151,9 +143,6 @@ SECTIONS
   .exit.text : { *(.exit.text) }
 #endif
   .init.data : {
-#ifdef CONFIG_PPC64
-    *(.init.data)
-#else
     *(.init.data);
     __vtop_table_begin = .;
     *(.vtop_fixup);
@@ -161,31 +150,17 @@ SECTIONS
     __ptov_table_begin = .;
     *(.ptov_fixup);
     __ptov_table_end = .;
-#endif
   }
 
   . = ALIGN(16);
-#ifdef CONFIG_PPC32
-  __setup_start = .;
-#endif
   .init.setup : {
-#ifdef CONFIG_PPC64
     __setup_start = .;
-#endif
     *(.init.setup)
-#ifdef CONFIG_PPC64
     __setup_end = .;
-#endif
   }
-#ifdef CONFIG_PPC32
-  __setup_end = .;
 
-  __initcall_start = .;
-#endif
   .initcall.init : {
-#ifdef CONFIG_PPC64
        __initcall_start = .;
-#endif
        *(.initcall1.init)
        *(.initcall2.init)
        *(.initcall3.init)
@@ -193,27 +168,14 @@ SECTIONS
        *(.initcall5.init)
        *(.initcall6.init)
        *(.initcall7.init)
-#ifdef CONFIG_PPC64
        __initcall_end = .;
-#endif
   }
-#ifdef CONFIG_PPC32
-  __initcall_end = .;
 
-  __con_initcall_start = .;
-#endif
   .con_initcall.init : {
-#ifdef CONFIG_PPC64
     __con_initcall_start = .;
-#endif
     *(.con_initcall.init)
-#ifdef CONFIG_PPC64
     __con_initcall_end = .;
-#endif
   }
-#ifdef CONFIG_PPC32
-  __con_initcall_end = .;
-#endif
 
   SECURITY_INIT
 
@@ -232,31 +194,23 @@ SECTIONS
 
 #ifdef CONFIG_PPC32
   . = ALIGN(32);
-  __per_cpu_start = .;
 #endif
   .data.percpu : {
-#ifdef CONFIG_PPC64
     __per_cpu_start = .;
-#endif
     *(.data.percpu)
-#ifdef CONFIG_PPC64
     __per_cpu_end = .;
-#endif
   }
-#ifdef CONFIG_PPC32
-  __per_cpu_end = .;
-#endif
 
-#ifdef CONFIG_PPC64
  . = ALIGN(PAGE_SIZE);
+#ifdef CONFIG_PPC64
  . = ALIGN(16384);
  __init_end = .;
  /* freed after init ends here */
 
-
  /* Read/write sections */
  . = ALIGN(PAGE_SIZE);
  . = ALIGN(16384);
+ _sdata = .;
  /* The initial task and kernel stack */
  .data.init_task : {
       *(.data.init_task)
@@ -288,10 +242,8 @@ SECTIONS
       _edata = .;
       }
 
-
   . = ALIGN(PAGE_SIZE);
 #else
-  . = ALIGN(4096);
   __initramfs_start = .;
   .init.ramfs : {
     *(.init.ramfs)
@@ -307,23 +259,15 @@ SECTIONS
 
   __bss_start = .;
 #endif
+
   .bss : {
-#ifdef CONFIG_PPC64
     __bss_start = .;
-#else
    *(.sbss) *(.scommon)
    *(.dynbss)
-#endif
    *(.bss)
-#ifdef CONFIG_PPC32
    *(COMMON)
-#else
   __bss_stop = .;
-#endif
   }
-#ifdef CONFIG_PPC32
-  __bss_stop = .;
-#endif
 
 #ifdef CONFIG_PPC64
   . = ALIGN(PAGE_SIZE);
index f34d514432ac55ccf9e4c16ef878da95db565f0a..022f220e772fe96cee38e9ddff095d65d3edb7c0 100644 (file)
@@ -106,6 +106,7 @@ SECTIONS
   /* Read/write sections */
   . = ALIGN(PAGE_SIZE);
   . = ALIGN(16384);
+  _sdata = .;
   /* The initial task and kernel stack */
   .data.init_task : {
        *(.data.init_task)