GNU Linux-libre 5.15.72-gnu
[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
38 #ifdef CONFIG_PPC64_BOOT_WRAPPER
39   . = ALIGN(256);
40   .got :
41   {
42     __toc_start = .;
43     *(.got)
44     *(.toc)
45   }
46 #endif
47
48   .hash : { *(.hash) }
49   .interp : { *(.interp) }
50   .rela.dyn :
51   {
52 #ifdef CONFIG_PPC64_BOOT_WRAPPER
53     __rela_dyn_start = .;
54 #endif
55     *(.rela*)
56   }
57
58   . = ALIGN(8);
59   .kernel:dtb :
60   {
61     _dtb_start = .;
62     *(.kernel:dtb)
63     _dtb_end = .;
64   }
65
66   . = ALIGN(4096);
67   .kernel:vmlinux.strip :
68   {
69     _vmlinux_start =  .;
70     *(.kernel:vmlinux.strip)
71     _vmlinux_end =  .;
72   }
73
74   . = ALIGN(4096);
75   .kernel:initrd :
76   {
77     _initrd_start =  .;
78     *(.kernel:initrd)
79     _initrd_end =  .;
80   }
81
82   . = ALIGN(4096);
83   .kernel:esm_blob :
84   {
85     _esm_blob_start =  .;
86     *(.kernel:esm_blob)
87     _esm_blob_end =  .;
88   }
89
90   . = ALIGN(4096);
91   .bss       :
92   {
93     _edata  =  .;
94     __bss_start = .;
95     *(.sbss)
96     *(.bss)
97     *(COMMON)
98     _end = . ;
99   }
100 }