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