vmlinux.lds.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:5k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef LOAD_OFFSET
  2. #define LOAD_OFFSET 0
  3. #endif
  4. #ifndef VMLINUX_SYMBOL
  5. #define VMLINUX_SYMBOL(_sym_) _sym_
  6. #endif
  7. /* Align . to a 8 byte boundary equals to maximum function alignment. */
  8. #define ALIGN_FUNCTION()  . = ALIGN(8)
  9. #define RODATA
  10. .rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {
  11. *(.rodata) *(.rodata.*)
  12. *(__vermagic) /* Kernel version magic */
  13. }
  14. .rodata1          : AT(ADDR(.rodata1) - LOAD_OFFSET) {
  15. *(.rodata1)
  16. }
  17. /* PCI quirks */
  18. .pci_fixup        : AT(ADDR(.pci_fixup) - LOAD_OFFSET) {
  19. VMLINUX_SYMBOL(__start_pci_fixups_early) = .;
  20. *(.pci_fixup_early)
  21. VMLINUX_SYMBOL(__end_pci_fixups_early) = .;
  22. VMLINUX_SYMBOL(__start_pci_fixups_header) = .;
  23. *(.pci_fixup_header)
  24. VMLINUX_SYMBOL(__end_pci_fixups_header) = .;
  25. VMLINUX_SYMBOL(__start_pci_fixups_final) = .;
  26. *(.pci_fixup_final)
  27. VMLINUX_SYMBOL(__end_pci_fixups_final) = .;
  28. VMLINUX_SYMBOL(__start_pci_fixups_enable) = .;
  29. *(.pci_fixup_enable)
  30. VMLINUX_SYMBOL(__end_pci_fixups_enable) = .;
  31. }
  32. /* Kernel symbol table: Normal symbols */
  33. __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {
  34. VMLINUX_SYMBOL(__start___ksymtab) = .;
  35. *(__ksymtab)
  36. VMLINUX_SYMBOL(__stop___ksymtab) = .;
  37. }
  38. /* Kernel symbol table: GPL-only symbols */
  39. __ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {
  40. VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;
  41. *(__ksymtab_gpl)
  42. VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;
  43. }
  44. /* Kernel symbol table: Normal symbols */
  45. __kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {
  46. VMLINUX_SYMBOL(__start___kcrctab) = .;
  47. *(__kcrctab)
  48. VMLINUX_SYMBOL(__stop___kcrctab) = .;
  49. }
  50. /* Kernel symbol table: GPL-only symbols */
  51. __kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {
  52. VMLINUX_SYMBOL(__start___kcrctab_gpl) = .;
  53. *(__kcrctab_gpl)
  54. VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .;
  55. }
  56. /* Kernel symbol table: strings */
  57.         __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {
  58. *(__ksymtab_strings)
  59. }
  60. /* Built-in module parameters. */
  61. __param : AT(ADDR(__param) - LOAD_OFFSET) {
  62. VMLINUX_SYMBOL(__start___param) = .;
  63. *(__param)
  64. VMLINUX_SYMBOL(__stop___param) = .;
  65. }
  66. #define SECURITY_INIT
  67. .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { 
  68. VMLINUX_SYMBOL(__security_initcall_start) = .;
  69. *(.security_initcall.init) 
  70. VMLINUX_SYMBOL(__security_initcall_end) = .;
  71. }
  72. /* sched.text is aling to function alignment to secure we have same
  73.  * address even at second ld pass when generating System.map */
  74. #define SCHED_TEXT
  75. ALIGN_FUNCTION();
  76. VMLINUX_SYMBOL(__sched_text_start) = .;
  77. *(.sched.text)
  78. VMLINUX_SYMBOL(__sched_text_end) = .;
  79. /* spinlock.text is aling to function alignment to secure we have same
  80.  * address even at second ld pass when generating System.map */
  81. #define LOCK_TEXT
  82. ALIGN_FUNCTION();
  83. VMLINUX_SYMBOL(__lock_text_start) = .;
  84. *(.spinlock.text)
  85. VMLINUX_SYMBOL(__lock_text_end) = .;
  86. #define KPROBES_TEXT
  87. ALIGN_FUNCTION();
  88. VMLINUX_SYMBOL(__kprobes_text_start) = .;
  89. *(.kprobes.text)
  90. VMLINUX_SYMBOL(__kprobes_text_end) = .;
  91. /* DWARF debug sections.
  92. Symbols in the DWARF debugging sections are relative to
  93. the beginning of the section so we begin them at 0.  */
  94. #define DWARF_DEBUG
  95. /* DWARF 1 */
  96. .debug          0 : { *(.debug) }
  97. .line           0 : { *(.line) }
  98. /* GNU DWARF 1 extensions */
  99. .debug_srcinfo  0 : { *(.debug_srcinfo) }
  100. .debug_sfnames  0 : { *(.debug_sfnames) }
  101. /* DWARF 1.1 and DWARF 2 */
  102. .debug_aranges  0 : { *(.debug_aranges) }
  103. .debug_pubnames 0 : { *(.debug_pubnames) }
  104. /* DWARF 2 */
  105. .debug_info     0 : { *(.debug_info
  106. .gnu.linkonce.wi.*) }
  107. .debug_abbrev   0 : { *(.debug_abbrev) }
  108. .debug_line     0 : { *(.debug_line) }
  109. .debug_frame    0 : { *(.debug_frame) }
  110. .debug_str      0 : { *(.debug_str) }
  111. .debug_loc      0 : { *(.debug_loc) }
  112. .debug_macinfo  0 : { *(.debug_macinfo) }
  113. /* SGI/MIPS DWARF 2 extensions */
  114. .debug_weaknames 0 : { *(.debug_weaknames) }
  115. .debug_funcnames 0 : { *(.debug_funcnames) }
  116. .debug_typenames 0 : { *(.debug_typenames) }
  117. .debug_varnames  0 : { *(.debug_varnames) }
  118. /* Stabs debugging sections.  */
  119. #define STABS_DEBUG
  120. .stab 0 : { *(.stab) }
  121. .stabstr 0 : { *(.stabstr) }
  122. .stab.excl 0 : { *(.stab.excl) }
  123. .stab.exclstr 0 : { *(.stab.exclstr) }
  124. .stab.index 0 : { *(.stab.index) }
  125. .stab.indexstr 0 : { *(.stab.indexstr) }
  126. .comment 0 : { *(.comment) }