vmlinux.lds.S 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /* ld script to make UltraLinux kernel */
  2. #include <asm/page.h>
  3. #include <asm-generic/vmlinux.lds.h>
  4. OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc")
  5. OUTPUT_ARCH(sparc:v9a)
  6. ENTRY(_start)
  7. jiffies = jiffies_64;
  8. SECTIONS
  9. {
  10. swapper_low_pmd_dir = 0x0000000000402000;
  11. . = 0x4000;
  12. .text 0x0000000000404000 : {
  13. _text = .;
  14. TEXT_TEXT
  15. SCHED_TEXT
  16. LOCK_TEXT
  17. KPROBES_TEXT
  18. *(.gnu.warning)
  19. } = 0
  20. _etext = .;
  21. PROVIDE (etext = .);
  22. RO_DATA(PAGE_SIZE)
  23. .data : {
  24. DATA_DATA
  25. CONSTRUCTORS
  26. }
  27. .data1 : {
  28. *(.data1)
  29. }
  30. . = ALIGN(64);
  31. .data.cacheline_aligned : {
  32. *(.data.cacheline_aligned)
  33. }
  34. . = ALIGN(64);
  35. .data.read_mostly : {
  36. *(.data.read_mostly)
  37. }
  38. _edata = .;
  39. PROVIDE (edata = .);
  40. .fixup : {
  41. *(.fixup)
  42. }
  43. . = ALIGN(16);
  44. __ex_table : {
  45. __start___ex_table = .;
  46. *(__ex_table)
  47. __stop___ex_table = .;
  48. }
  49. NOTES
  50. . = ALIGN(PAGE_SIZE);
  51. .init.text : {
  52. __init_begin = .;
  53. _sinittext = .;
  54. INIT_TEXT
  55. _einittext = .;
  56. }
  57. .init.data : {
  58. INIT_DATA
  59. }
  60. . = ALIGN(16);
  61. .init.setup : {
  62. __setup_start = .;
  63. *(.init.setup)
  64. __setup_end = .;
  65. }
  66. .initcall.init : {
  67. __initcall_start = .;
  68. INITCALLS
  69. __initcall_end = .;
  70. }
  71. .con_initcall.init : {
  72. __con_initcall_start = .;
  73. *(.con_initcall.init)
  74. __con_initcall_end = .;
  75. }
  76. SECURITY_INIT
  77. . = ALIGN(4);
  78. .tsb_ldquad_phys_patch : {
  79. __tsb_ldquad_phys_patch = .;
  80. *(.tsb_ldquad_phys_patch)
  81. __tsb_ldquad_phys_patch_end = .;
  82. }
  83. .tsb_phys_patch : {
  84. __tsb_phys_patch = .;
  85. *(.tsb_phys_patch)
  86. __tsb_phys_patch_end = .;
  87. }
  88. .cpuid_patch : {
  89. __cpuid_patch = .;
  90. *(.cpuid_patch)
  91. __cpuid_patch_end = .;
  92. }
  93. .sun4v_1insn_patch : {
  94. __sun4v_1insn_patch = .;
  95. *(.sun4v_1insn_patch)
  96. __sun4v_1insn_patch_end = .;
  97. }
  98. .sun4v_2insn_patch : {
  99. __sun4v_2insn_patch = .;
  100. *(.sun4v_2insn_patch)
  101. __sun4v_2insn_patch_end = .;
  102. }
  103. #ifdef CONFIG_BLK_DEV_INITRD
  104. . = ALIGN(PAGE_SIZE);
  105. .init.ramfs : {
  106. __initramfs_start = .;
  107. *(.init.ramfs)
  108. __initramfs_end = .;
  109. }
  110. #endif
  111. PERCPU(PAGE_SIZE)
  112. . = ALIGN(PAGE_SIZE);
  113. __init_end = .;
  114. __bss_start = .;
  115. .sbss : {
  116. *(.sbss)
  117. *(.scommon)
  118. }
  119. .bss : {
  120. *(.dynbss)
  121. *(.bss)
  122. *(COMMON)
  123. }
  124. _end = . ;
  125. PROVIDE (end = .);
  126. /DISCARD/ : {
  127. EXIT_TEXT
  128. EXIT_DATA
  129. *(.exitcall.exit)
  130. }
  131. STABS_DEBUG
  132. DWARF_DEBUG
  133. }