vmlinux.lds.S 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #include <asm-generic/vmlinux.lds.h>
  2. #include <asm/page.h>
  3. OUTPUT_FORMAT("elf64-alpha")
  4. OUTPUT_ARCH(alpha)
  5. ENTRY(__start)
  6. PHDRS { kernel PT_LOAD; note PT_NOTE; }
  7. jiffies = jiffies_64;
  8. SECTIONS
  9. {
  10. #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
  11. . = 0xfffffc0000310000;
  12. #else
  13. . = 0xfffffc0001010000;
  14. #endif
  15. _text = .; /* Text and read-only data */
  16. .text : {
  17. HEAD_TEXT
  18. TEXT_TEXT
  19. SCHED_TEXT
  20. LOCK_TEXT
  21. *(.fixup)
  22. *(.gnu.warning)
  23. } :kernel
  24. _etext = .; /* End of text section */
  25. NOTES :kernel :note
  26. .dummy : {
  27. *(.dummy)
  28. } :kernel
  29. RODATA
  30. /* Exception table */
  31. . = ALIGN(16);
  32. __ex_table : {
  33. __start___ex_table = .;
  34. *(__ex_table)
  35. __stop___ex_table = .;
  36. }
  37. /* Will be freed after init */
  38. . = ALIGN(PAGE_SIZE);
  39. /* Init code and data */
  40. __init_begin = .;
  41. .init.text : {
  42. _sinittext = .;
  43. INIT_TEXT
  44. _einittext = .;
  45. }
  46. .init.data : {
  47. INIT_DATA
  48. }
  49. . = ALIGN(16);
  50. .init.setup : {
  51. __setup_start = .;
  52. *(.init.setup)
  53. __setup_end = .;
  54. }
  55. . = ALIGN(8);
  56. .initcall.init : {
  57. __initcall_start = .;
  58. INITCALLS
  59. __initcall_end = .;
  60. }
  61. #ifdef CONFIG_BLK_DEV_INITRD
  62. . = ALIGN(PAGE_SIZE);
  63. .init.ramfs : {
  64. __initramfs_start = .;
  65. *(.init.ramfs)
  66. __initramfs_end = .;
  67. }
  68. #endif
  69. . = ALIGN(8);
  70. .con_initcall.init : {
  71. __con_initcall_start = .;
  72. *(.con_initcall.init)
  73. __con_initcall_end = .;
  74. }
  75. . = ALIGN(8);
  76. SECURITY_INIT
  77. PERCPU(PAGE_SIZE)
  78. . = ALIGN(2 * PAGE_SIZE);
  79. __init_end = .;
  80. /* Freed after init ends here */
  81. /* Note 2 page alignment above. */
  82. .data.init_thread : {
  83. *(.data.init_thread)
  84. }
  85. . = ALIGN(PAGE_SIZE);
  86. .data.page_aligned : {
  87. *(.data.page_aligned)
  88. }
  89. . = ALIGN(64);
  90. .data.cacheline_aligned : {
  91. *(.data.cacheline_aligned)
  92. }
  93. _data = .;
  94. /* Data */
  95. .data : {
  96. DATA_DATA
  97. CONSTRUCTORS
  98. }
  99. .got : {
  100. *(.got)
  101. }
  102. .sdata : {
  103. *(.sdata)
  104. }
  105. _edata = .; /* End of data section */
  106. __bss_start = .;
  107. .sbss : {
  108. *(.sbss)
  109. *(.scommon)
  110. }
  111. .bss : {
  112. *(.bss)
  113. *(COMMON)
  114. }
  115. __bss_stop = .;
  116. _end = .;
  117. /* Sections to be discarded */
  118. /DISCARD/ : {
  119. EXIT_TEXT
  120. EXIT_DATA
  121. *(.exitcall.exit)
  122. }
  123. .mdebug 0 : {
  124. *(.mdebug)
  125. }
  126. .note 0 : {
  127. *(.note)
  128. }
  129. STABS_DEBUG
  130. DWARF_DEBUG
  131. }