GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / powerpc / boot / zImage.lds.S
1 /* SPDX-License-Identifier: GPL-2.0 */
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 #ifdef CONFIG_PPC64_BOOT_WRAPPER
72   . = ALIGN(256);
73   .got :
74   {
75     __toc_start = .;
76     *(.got)
77     *(.toc)
78   }
79 #endif
80
81   . = ALIGN(4096);
82   .bss       :
83   {
84     _edata  =  .;
85     __bss_start = .;
86     *(.sbss)
87     *(.bss)
88     *(COMMON)
89     _end = . ;
90   }
91 }