1
2 #include <asm-generic/vmlinux.lds.h>
3
4 #ifdef CONFIG_PPC64_BOOT_WRAPPER
5 OUTPUT_ARCH(powerpc:common64)
6 #else
7 OUTPUT_ARCH(powerpc:common)
8 #endif
9 ENTRY(_zimage_start)
10 EXTERN(_zimage_start)
11 SECTIONS
12 {
13 .text :
14 {
15 _start = .;
16 *(.text)
17 *(.fixup)
18 _etext = .;
19 }
20 . = ALIGN(4096);
21 .data :
22 {
23 *(.rodata*)
24 *(.data*)
25 *(.sdata*)
26 #ifndef CONFIG_PPC64_BOOT_WRAPPER
27 *(.got2)
28 #endif
29 }
30 .dynsym : { *(.dynsym) }
31 .dynstr : { *(.dynstr) }
32 .dynamic :
33 {
34 __dynamic_start = .;
35 *(.dynamic)
36 }
37 .hash : { *(.hash) }
38 .interp : { *(.interp) }
39 .rela.dyn :
40 {
41 #ifdef CONFIG_PPC64_BOOT_WRAPPER
42 __rela_dyn_start = .;
43 #endif
44 *(.rela*)
45 }
46
47 . = ALIGN(8);
48 .kernel:dtb :
49 {
50 _dtb_start = .;
51 *(.kernel:dtb)
52 _dtb_end = .;
53 }
54
55 . = ALIGN(4096);
56 .kernel:vmlinux.strip :
57 {
58 _vmlinux_start = .;
59 *(.kernel:vmlinux.strip)
60 _vmlinux_end = .;
61 }
62
63 . = ALIGN(4096);
64 .kernel:initrd :
65 {
66 _initrd_start = .;
67 *(.kernel:initrd)
68 _initrd_end = .;
69 }
70
71 . = ALIGN(4096);
72 .kernel:esm_blob :
73 {
74 _esm_blob_start = .;
75 *(.kernel:esm_blob)
76 _esm_blob_end = .;
77 }
78
79 #ifdef CONFIG_PPC64_BOOT_WRAPPER
80 . = ALIGN(256);
81 .got :
82 {
83 __toc_start = .;
84 *(.got)
85 *(.toc)
86 }
87 #endif
88
89 . = ALIGN(4096);
90 .bss :
91 {
92 _edata = .;
93 __bss_start = .;
94 *(.sbss)
95 *(.bss)
96 *(COMMON)
97 _end = . ;
98 }
99 }