vmlinux.lds
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* ld script to make x86-64 Linux kernel
  2.  * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
  3.  */
  4. OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
  5. OUTPUT_ARCH(i386:x86-64)
  6. ENTRY(_start)
  7. SECTIONS
  8. {
  9.   . = 0xffffffff80100000;
  10.   _text = .; /* Text and read-only data */
  11.   .text : {
  12. *(.text)
  13. *(.fixup)
  14. *(.gnu.warning)
  15. } = 0x9090
  16.   .text.lock : { *(.text.lock) } /* out-of-line lock text */
  17.   _etext = .; /* End of text section */
  18.   .rodata : { *(.rodata) *(.rodata.*) }
  19.   .kstrtab : { *(.kstrtab) }
  20.   . = ALIGN(16); /* Exception table */
  21.   __start___ex_table = .;
  22.   __ex_table : { *(__ex_table) }
  23.   __stop___ex_table = .;
  24.   __start___ksymtab = .; /* Kernel symbol table */
  25.   __ksymtab : { *(__ksymtab) }
  26.   __stop___ksymtab = .;
  27.   __start___kallsyms = .; /* All kernel symbols */
  28.   __kallsyms : { *(__kallsyms) }
  29.   __stop___kallsyms = .;
  30.   .data : { /* Data */
  31. *(.data)
  32. CONSTRUCTORS
  33. }
  34.   _edata = .; /* End of data section */
  35.   __bss_start = .; /* BSS */
  36.   .bss : {
  37. *(.bss)
  38. }
  39.   __bss_end = .;
  40.   . = ALIGN(64);
  41.   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
  42.   .vsyscall_0 -10*1024*1024: AT ((LOADADDR(.data.cacheline_aligned) + SIZEOF(.data.cacheline_aligned) + 4095) & ~(4095)) { *(.vsyscall_0) }
  43.   __vsyscall_0 = LOADADDR(.vsyscall_0);
  44.   . = ALIGN(64);
  45.   .vxtime_sequence : AT ((LOADADDR(.vsyscall_0) + SIZEOF(.vsyscall_0) + 63) & ~(63)) { *(.vxtime_sequence) }
  46.   vxtime_sequence = LOADADDR(.vxtime_sequence);
  47.   . = ALIGN(16);
  48.   .hpet : AT ((LOADADDR(.vxtime_sequence) + SIZEOF(.vxtime_sequence) + 15) & ~(15)) { *(.hpet) }
  49.   hpet = LOADADDR(.hpet);
  50.   . = ALIGN(16);
  51.   .wall_jiffies : AT ((LOADADDR(.hpet) + SIZEOF(.hpet) + 15) & ~(15)) { *(.wall_jiffies) }
  52.   wall_jiffies = LOADADDR(.wall_jiffies);
  53.   . = ALIGN(16);
  54.   .sys_tz : AT ((LOADADDR(.wall_jiffies) + SIZEOF(.wall_jiffies) + 15) & ~(15)) { *(.sys_tz) }
  55.   sys_tz = LOADADDR(.sys_tz);
  56.   . = ALIGN(16);
  57.   .jiffies : AT ((LOADADDR(.sys_tz) + SIZEOF(.sys_tz) + 15) & ~(15)) { *(.jiffies) }
  58.   jiffies = LOADADDR(.jiffies);
  59.   . = ALIGN(16);
  60.   .xtime : AT ((LOADADDR(.jiffies) + SIZEOF(.jiffies) + 15) & ~(15)) { *(.xtime) }
  61.   xtime = LOADADDR(.xtime);
  62.   .vsyscall_1 ADDR(.vsyscall_0) + 1024: AT (LOADADDR(.vsyscall_0) + 1024) { *(.vsyscall_1) }
  63.   . = LOADADDR(.vsyscall_0) + 4096;
  64.   . = ALIGN(8192); /* init_task */
  65.   .data.init_task : { *(.data.init_task) }
  66.   . = ALIGN(4096); 
  67.   .data.boot_pgt : { *(.data.boot_pgt) }
  68.   . = ALIGN(4096); /* Init code and data */
  69.   __init_begin = .;
  70.   .text.init : { *(.text.init) }
  71.   .data.init : { *(.data.init) }
  72.   . = ALIGN(16);
  73.   __setup_start = .;
  74.   .setup.init : { *(.setup.init) }
  75.   __setup_end = .;
  76.   __initcall_start = .;
  77.   .initcall.init : { *(.initcall.init) }
  78.   __initcall_end = .;
  79.   . = ALIGN(4096);
  80.   __init_end = .;
  81.   _end = . ;
  82.   /* Sections to be discarded */
  83.   /DISCARD/ : {
  84. *(.data.exit)
  85. *(.exitcall.exit)
  86. }
  87.   /* DWARF 2 */
  88.   .debug_info     0 : { *(.debug_info) }
  89.   .debug_abbrev   0 : { *(.debug_abbrev) }
  90.   .debug_line     0 : { *(.debug_line) }
  91.   .debug_frame    0 : { *(.debug_frame) }
  92.   .debug_str      0 : { *(.debug_str) }
  93.   .debug_loc      0 : { *(.debug_loc) }
  94.   .debug_macinfo  0 : { *(.debug_macinfo) }
  95.   /* SGI/MIPS DWARF 2 extensions */
  96.   .debug_weaknames 0 : { *(.debug_weaknames) }
  97.   .debug_funcnames 0 : { *(.debug_funcnames) }
  98.   .debug_typenames 0 : { *(.debug_typenames) }
  99.   .debug_varnames  0 : { *(.debug_varnames) }
  100.   .comment 0 : { *(.comment) }
  101. }