blob: f080abfc2f83fbd1e7d63846904a3a21ad820cee [file] [log] [blame]
Cédric Le Goater147c0512014-04-24 09:23:39 +02001#include <asm-generic/vmlinux.lds.h>
2
3#ifdef CONFIG_PPC64_BOOT_WRAPPER
4OUTPUT_ARCH(powerpc:common64)
5#else
Linus Torvalds1da177e2005-04-16 15:20:36 -07006OUTPUT_ARCH(powerpc:common)
Cédric Le Goater147c0512014-04-24 09:23:39 +02007#endif
Olaf Hering67a1b682005-10-28 17:46:49 -07008ENTRY(_zimage_start)
David Gibsoncd197ff2007-03-05 14:24:52 +11009EXTERN(_zimage_start)
Linus Torvalds1da177e2005-04-16 15:20:36 -070010SECTIONS
11{
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 .text :
13 {
Michael Ellerman6975a782011-04-12 20:38:55 +000014 _start = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 *(.text)
16 *(.fixup)
Michael Ellerman6975a782011-04-12 20:38:55 +000017 _etext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 . = ALIGN(4096);
20 .data :
21 {
Olaf Hering06cf26b2005-10-28 17:46:44 -070022 *(.rodata*)
23 *(.data*)
24 *(.sdata*)
Cédric Le Goater147c0512014-04-24 09:23:39 +020025#ifndef CONFIG_PPC64_BOOT_WRAPPER
Olaf Heringa4497232005-10-28 17:46:48 -070026 *(.got2)
Cédric Le Goater147c0512014-04-24 09:23:39 +020027#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070028 }
Michael Ellerman6975a782011-04-12 20:38:55 +000029 .dynsym : { *(.dynsym) }
30 .dynstr : { *(.dynstr) }
31 .dynamic :
32 {
33 __dynamic_start = .;
34 *(.dynamic)
35 }
36 .hash : { *(.hash) }
37 .interp : { *(.interp) }
Cédric Le Goater147c0512014-04-24 09:23:39 +020038 .rela.dyn :
39 {
40#ifdef CONFIG_PPC64_BOOT_WRAPPER
41 __rela_dyn_start = .;
42#endif
43 *(.rela*)
44 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070045
Paul Mackerras621da0f2006-11-09 16:00:06 +110046 . = ALIGN(8);
Michael Ellerman6975a782011-04-12 20:38:55 +000047 .kernel:dtb :
48 {
49 _dtb_start = .;
50 *(.kernel:dtb)
51 _dtb_end = .;
52 }
Paul Mackerras621da0f2006-11-09 16:00:06 +110053
Linus Torvalds1da177e2005-04-16 15:20:36 -070054 . = ALIGN(4096);
Michael Ellerman6975a782011-04-12 20:38:55 +000055 .kernel:vmlinux.strip :
56 {
57 _vmlinux_start = .;
58 *(.kernel:vmlinux.strip)
59 _vmlinux_end = .;
60 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070061
62 . = ALIGN(4096);
Michael Ellerman6975a782011-04-12 20:38:55 +000063 .kernel:initrd :
64 {
65 _initrd_start = .;
66 *(.kernel:initrd)
67 _initrd_end = .;
68 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070069
Cédric Le Goater147c0512014-04-24 09:23:39 +020070#ifdef CONFIG_PPC64_BOOT_WRAPPER
Michael Ellerman4265e0b2017-03-07 16:14:49 +110071 . = ALIGN(256);
Cédric Le Goater147c0512014-04-24 09:23:39 +020072 .got :
73 {
74 __toc_start = .;
75 *(.got)
76 *(.toc)
77 }
78#endif
79
Linus Torvalds1da177e2005-04-16 15:20:36 -070080 . = ALIGN(4096);
Linus Torvalds1da177e2005-04-16 15:20:36 -070081 .bss :
82 {
Michael Ellerman6975a782011-04-12 20:38:55 +000083 _edata = .;
84 __bss_start = .;
85 *(.sbss)
86 *(.bss)
87 *(COMMON)
88 _end = . ;
Linus Torvalds1da177e2005-04-16 15:20:36 -070089 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070090}