123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- OUTPUT_FORMAT(elf32-i386)
- OUTPUT_ARCH(i386:i386)
- MEMORY
- {
- MEM : org = 0x00000000, l = 4096M
- }
- SECTIONS
- {
- .stage1 0x8000 : AT(0x00000000)
- {
- __stage1_start = .;
- *(.stage1)
- . = ALIGN(0x1000);
- __stage1_end = .;
- } > MEM
- .kinit :
- AT(LOADADDR(.stage1) + SIZEOF(.stage1))
- {
- __kinit_start = .;
- *(.text.kinit)
- LONG(0x00000000)
- LONG(0x19191919)
- LONG(0x00000000)
- *(.rodata.kinit)
- . = ALIGN(16);
- start_ctors = .;
- KEEP(*(.init_array));
- KEEP(*(SORT_BY_INIT_PRIORITY(.init_array*)));
- KEEP(*(.ctors));
- KEEP(*(SORT_BY_INIT_PRIORITY(.ctors*)));
- end_ctors = .;
- LONG(0x00000000)
- LONG(0x19191919)
- LONG(0x00000000)
- *(.data.kinit)
- LONG(0x00000000)
- LONG(0x19191919)
- LONG(0x00000000)
- *(.bss.kinit)
- LONG(0x00000000)
- LONG(0x19191919)
- LONG(0x00000000)
- . = ALIGN(0x1000);
- __kinit_end = .;
- } > MEM
- .text 0xc0000000 :
- AT(LOADADDR(.kinit) + SIZEOF(.kinit))
- {
- __text_start = .;
- *(.text)
- *(.text*)
- . = ALIGN(0x1000);
- __text_end = .;
- } > MEM
- .rodata :
- AT(LOADADDR(.text) + SIZEOF(.text))
- {
- __rodata_start = .;
- *(.rodata)
- *(.rodata*)
- . = ALIGN(16);
- bss_addr = .;
- LONG(ABSOLUTE(__bss_start));
- bss_len = .;
- LONG(__bss_end - __bss_start);
- kernel_size = .;
- LONG(__data_end - __kinit_start);
- __stack_chk_guard = .;
- LONG(0x19198101);
- . = ALIGN(0x1000);
- __rodata_end = .;
- } > MEM
- .data :
- AT(LOADADDR(.rodata) + SIZEOF(.rodata))
- {
- __data_start = .;
- *(.data)
- *(.data*)
- . = ALIGN(0x1000);
- __data_end = .;
- } > MEM
- .bss :
- {
- __bss_start = .;
- *(.bss)
- *(.bss*)
- . = ALIGN(0x1000);
- __bss_end = .;
- } > MEM
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /DISCARD/ :
- {
- *(.fini_array*)
- *(.eh_frame*)
- *(.note*)
- }
- }
|