Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a288563 authored by Paul Mackerras's avatar Paul Mackerras
Browse files

powerpc: Reduce the 32/64-bit diffs in vmlinux.lds.S



Also adds the definition of the _sdata symbol to the ppc64 vmlinux.lds.S.

Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 86417780
Loading
Loading
Loading
Loading
+9 −65
Original line number Diff line number Diff line
#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);
+1 −0
Original line number Diff line number Diff line
@@ -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)