vmlinux.lds.S 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /* ld script to make SparcLinux kernel */
  2. #include <asm-generic/vmlinux.lds.h>
  3. #include <asm/page.h>
  4. OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
  5. OUTPUT_ARCH(sparc)
  6. ENTRY(_start)
  7. jiffies = jiffies_64 + 4;
  8. SECTIONS
  9. {
  10. . = 0x10000 + SIZEOF_HEADERS;
  11. .text 0xf0004000 :
  12. {
  13. _text = .;
  14. *(.text.head)
  15. TEXT_TEXT
  16. SCHED_TEXT
  17. LOCK_TEXT
  18. *(.gnu.warning)
  19. } = 0
  20. _etext = .;
  21. PROVIDE (etext = .);
  22. RODATA
  23. .data : {
  24. DATA_DATA
  25. CONSTRUCTORS
  26. }
  27. .data1 : {
  28. *(.data1)
  29. }
  30. _edata = .;
  31. PROVIDE (edata = .);
  32. .fixup : {
  33. __start___fixup = .;
  34. *(.fixup)
  35. __stop___fixup = .;
  36. }
  37. __ex_table : {
  38. __start___ex_table = .;
  39. *(__ex_table)
  40. __stop___ex_table = .;
  41. }
  42. NOTES
  43. . = ALIGN(PAGE_SIZE);
  44. __init_begin = .;
  45. .init.text : {
  46. _sinittext = .;
  47. INIT_TEXT
  48. _einittext = .;
  49. }
  50. __init_text_end = .;
  51. .init.data : {
  52. INIT_DATA
  53. }
  54. . = ALIGN(16);
  55. .init.setup : {
  56. __setup_start = .;
  57. *(.init.setup)
  58. __setup_end = .;
  59. }
  60. .initcall.init : {
  61. __initcall_start = .;
  62. INITCALLS
  63. __initcall_end = .;
  64. }
  65. .con_initcall.init : {
  66. __con_initcall_start = .;
  67. *(.con_initcall.init)
  68. __con_initcall_end = .;
  69. }
  70. SECURITY_INIT
  71. #ifdef CONFIG_BLK_DEV_INITRD
  72. . = ALIGN(PAGE_SIZE);
  73. .init.ramfs : {
  74. __initramfs_start = .;
  75. *(.init.ramfs)
  76. __initramfs_end = .;
  77. }
  78. #endif
  79. PERCPU(PAGE_SIZE)
  80. . = ALIGN(PAGE_SIZE);
  81. __init_end = .;
  82. . = ALIGN(32);
  83. .data.cacheline_aligned : {
  84. *(.data.cacheline_aligned)
  85. }
  86. . = ALIGN(32);
  87. .data.read_mostly : {
  88. *(.data.read_mostly)
  89. }
  90. __bss_start = .;
  91. .sbss : {
  92. *(.sbss)
  93. *(.scommon) }
  94. .bss : {
  95. *(.dynbss)
  96. *(.bss)
  97. *(COMMON)
  98. }
  99. _end = . ;
  100. PROVIDE (end = .);
  101. /DISCARD/ : {
  102. EXIT_TEXT
  103. EXIT_DATA
  104. *(.exitcall.exit)
  105. }
  106. STABS_DEBUG
  107. DWARF_DEBUG
  108. }