GNU Linux-libre 5.4.274-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   . = 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 }