1f08c3bdfSopenharmony_ciOUTPUT_FORMAT(elf32-i386)
2f08c3bdfSopenharmony_ci
3f08c3bdfSopenharmony_ciPHDRS
4f08c3bdfSopenharmony_ci{
5f08c3bdfSopenharmony_ci	headers PT_PHDR PHDRS ;
6f08c3bdfSopenharmony_ci	text PT_LOAD FILEHDR PHDRS ;
7f08c3bdfSopenharmony_ci	data PT_LOAD ;
8f08c3bdfSopenharmony_ci	bss PT_LOAD ;
9f08c3bdfSopenharmony_ci}
10f08c3bdfSopenharmony_ci
11f08c3bdfSopenharmony_ciSECTIONS
12f08c3bdfSopenharmony_ci{
13f08c3bdfSopenharmony_ci	/DISCARD/ :
14f08c3bdfSopenharmony_ci	{
15f08c3bdfSopenharmony_ci		  *(.note.gnu.* .comment)
16f08c3bdfSopenharmony_ci	}
17f08c3bdfSopenharmony_ci
18f08c3bdfSopenharmony_ci	. = 0x1000;
19f08c3bdfSopenharmony_ci	.init.boot :
20f08c3bdfSopenharmony_ci	{
21f08c3bdfSopenharmony_ci		*(.init.protected_mode)
22f08c3bdfSopenharmony_ci		*(.init.gdt32)
23f08c3bdfSopenharmony_ci		*(.init.memlayout)
24f08c3bdfSopenharmony_ci	} :text
25f08c3bdfSopenharmony_ci
26f08c3bdfSopenharmony_ci	.text :
27f08c3bdfSopenharmony_ci	{
28f08c3bdfSopenharmony_ci		*(.rodata .rodata.*)
29f08c3bdfSopenharmony_ci		*(.text.unlikely .text.unlikely.*)
30f08c3bdfSopenharmony_ci		*(.text.startup .text.startup.*)
31f08c3bdfSopenharmony_ci		*(.text .text.*)
32f08c3bdfSopenharmony_ci		*(.gnu.linkonce.t.*)
33f08c3bdfSopenharmony_ci	}
34f08c3bdfSopenharmony_ci
35f08c3bdfSopenharmony_ci	.init :
36f08c3bdfSopenharmony_ci	{
37f08c3bdfSopenharmony_ci		KEEP (*(SORT_NONE(.init)))
38f08c3bdfSopenharmony_ci	}
39f08c3bdfSopenharmony_ci
40f08c3bdfSopenharmony_ci	.data :
41f08c3bdfSopenharmony_ci	{
42f08c3bdfSopenharmony_ci		*(.data.strings)
43f08c3bdfSopenharmony_ci		*(.data)
44f08c3bdfSopenharmony_ci	} :data
45f08c3bdfSopenharmony_ci
46f08c3bdfSopenharmony_ci	.preinit_array :
47f08c3bdfSopenharmony_ci	{
48f08c3bdfSopenharmony_ci		PROVIDE_HIDDEN (__preinit_array_start = .);
49f08c3bdfSopenharmony_ci		KEEP (*(.preinit_array))
50f08c3bdfSopenharmony_ci		PROVIDE_HIDDEN (__preinit_array_end = .);
51f08c3bdfSopenharmony_ci	}
52f08c3bdfSopenharmony_ci
53f08c3bdfSopenharmony_ci	.init_array :
54f08c3bdfSopenharmony_ci	{
55f08c3bdfSopenharmony_ci		PROVIDE_HIDDEN (__init_array_start = .);
56f08c3bdfSopenharmony_ci		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
57f08c3bdfSopenharmony_ci		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
58f08c3bdfSopenharmony_ci		PROVIDE_HIDDEN (__init_array_end = .);
59f08c3bdfSopenharmony_ci	}
60f08c3bdfSopenharmony_ci
61f08c3bdfSopenharmony_ci	.bss.pgtables : ALIGN(4096)
62f08c3bdfSopenharmony_ci	{
63f08c3bdfSopenharmony_ci		*(.bss.pgtables)
64f08c3bdfSopenharmony_ci	} :bss
65f08c3bdfSopenharmony_ci
66f08c3bdfSopenharmony_ci	.bss : ALIGN(4096)
67f08c3bdfSopenharmony_ci	{
68f08c3bdfSopenharmony_ci		*(.bss.stack)
69f08c3bdfSopenharmony_ci		*(.bss.tss)
70f08c3bdfSopenharmony_ci		*(.bss)
71f08c3bdfSopenharmony_ci
72f08c3bdfSopenharmony_ci		. = ALIGN(4096);
73f08c3bdfSopenharmony_ci		kvm_heap_begin = .;
74f08c3bdfSopenharmony_ci	}
75f08c3bdfSopenharmony_ci}
76