blob: 861e72109df2da0b54c98a94584b8b4ff853026b [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
71 .got :
72 {
73 __toc_start = .;
74 *(.got)
75 *(.toc)
76 }
77#endif
78
Linus Torvalds1da177e2005-04-16 15:20:36 -070079 . = ALIGN(4096);
Linus Torvalds1da177e2005-04-16 15:20:36 -070080 .bss :
81 {
Michael Ellerman6975a782011-04-12 20:38:55 +000082 _edata = .;
83 __bss_start = .;
84 *(.sbss)
85 *(.bss)
86 *(COMMON)
87 _end = . ;
Linus Torvalds1da177e2005-04-16 15:20:36 -070088 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070089}