18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ld script to make i386 Linux kernel
28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectOUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectOUTPUT_ARCH(i386)
68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectSEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/alpha-unknown-linux-gnu/lib);
78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectENTRY(_start)
88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectSECTIONS
98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* Read-only sections, merged into text segment: */
118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  . = 0xa8000000 + SIZEOF_HEADERS;
128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .interp     : { *(.interp) 	}
138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .hash          : { *(.hash)		}
148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .dynsym        : { *(.dynsym)		}
158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .dynstr        : { *(.dynstr)		}
168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .gnu.version   : { *(.gnu.version)	}
178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .gnu.version_d   : { *(.gnu.version_d)	}
188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .gnu.version_r   : { *(.gnu.version_r)	}
198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.text      :
208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rel.text) *(.rel.gnu.linkonce.t*) }
218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.text     :
228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rela.text) *(.rela.gnu.linkonce.t*) }
238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.data      :
248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rel.data) *(.rel.gnu.linkonce.d*) }
258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.data     :
268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rela.data) *(.rela.gnu.linkonce.d*) }
278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.rodata    :
288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.rodata   :
308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.got       : { *(.rel.got)		}
328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.got      : { *(.rela.got)		}
338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.ctors     : { *(.rel.ctors)	}
348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.ctors    : { *(.rela.ctors)	}
358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.dtors     : { *(.rel.dtors)	}
368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.dtors    : { *(.rela.dtors)	}
378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.init      : { *(.rel.init)	}
388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.init     : { *(.rela.init)	}
398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.fini      : { *(.rel.fini)	}
408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.fini     : { *(.rela.fini)	}
418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.bss       : { *(.rel.bss)		}
428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.bss      : { *(.rela.bss)		}
438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rel.plt       : { *(.rel.plt)		}
448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rela.plt      : { *(.rela.plt)		}
458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .init          : { *(.init)	} =0x47ff041f
468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .text      :
478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  {
488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.text)
498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    /* .gnu.warning sections are handled specially by elf32.em.  */
508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.gnu.warning)
518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.gnu.linkonce.t*)
528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  } =0x47ff041f
538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  _etext = .;
548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  PROVIDE (etext = .);
558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .fini      : { *(.fini)    } =0x47ff041f
568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rodata    : { *(.rodata) *(.gnu.linkonce.r*) }
578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .rodata1   : { *(.rodata1) }
588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .reginfo : { *(.reginfo) }
598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __preinit_array_start = .;
608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .preinit_array : { *(.preinit_array) }
618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __preinit_array_end = .;
628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __init_array_start = .;
638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .init_array : { *(.init_array) }
648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __init_array_end = .;
658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __fini_array_start = .;
668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .fini_array : { *(.fini_array) }
678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __fini_array_end = .;
688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* Adjust the address for the data segment.  We want to adjust up to
708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     the same address within the page on the next page up.  */
718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  . = ALIGN(0x100000) + (. & (0x100000 - 1));
728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .data    :
738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  {
748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.data)
758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.gnu.linkonce.d*)
768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    CONSTRUCTORS
778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  }
788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .data1   : { *(.data1) }
798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .ctors         :
808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  {
818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.ctors)
828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  }
838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .dtors         :
848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  {
858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *(.dtors)
868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  }
878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .plt      : { *(.plt)	}
888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .got           : { *(.got.plt) *(.got) }
898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .dynamic       : { *(.dynamic) }
908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* We want the small data sections together, so single-instruction offsets
918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     can access them all, and initialized data all before uninitialized, so
928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     we can shorten the on-disk segment size.  */
938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .sdata     : { *(.sdata) }
948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  _edata  =  .;
958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  PROVIDE (edata = .);
968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  __bss_start = .;
978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .sbss      : { *(.sbss) *(.scommon) }
988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .bss       :
998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  {
1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   *(.dynbss)
1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   *(.bss)
1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   *(COMMON)
1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  }
1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  _end = . ;
1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  PROVIDE (end = .);
1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* Stabs debugging sections.  */
1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stab 0 : { *(.stab) }
1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stabstr 0 : { *(.stabstr) }
1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stab.excl 0 : { *(.stab.excl) }
1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stab.exclstr 0 : { *(.stab.exclstr) }
1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stab.index 0 : { *(.stab.index) }
1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .stab.indexstr 0 : { *(.stab.indexstr) }
1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .comment 0 : { *(.comment) }
1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* DWARF debug sections.
1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     Symbols in the DWARF debugging sections are relative to the beginning
1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     of the section so we begin them at 0.  */
1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* DWARF 1 */
1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug          0 : { *(.debug) }
1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .line           0 : { *(.line) }
1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* GNU DWARF 1 extensions */
1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_srcinfo  0 : { *(.debug_srcinfo) }
1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_sfnames  0 : { *(.debug_sfnames) }
1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* DWARF 1.1 and DWARF 2 */
1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_aranges  0 : { *(.debug_aranges) }
1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_pubnames 0 : { *(.debug_pubnames) }
1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* DWARF 2 */
1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_info     0 : { *(.debug_info) }
1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_abbrev   0 : { *(.debug_abbrev) }
1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_line     0 : { *(.debug_line) }
1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_frame    0 : { *(.debug_frame) }
1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_str      0 : { *(.debug_str) }
1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_loc      0 : { *(.debug_loc) }
1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_macinfo  0 : { *(.debug_macinfo) }
1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* SGI/MIPS DWARF 2 extensions */
1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_weaknames 0 : { *(.debug_weaknames) }
1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_funcnames 0 : { *(.debug_funcnames) }
1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_typenames 0 : { *(.debug_typenames) }
1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  .debug_varnames  0 : { *(.debug_varnames) }
1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* These must appear regardless of  .  */
1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
141