vmlinux.lds.S 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* ld script to make M32R Linux kernel
  2. */
  3. #include <asm-generic/vmlinux.lds.h>
  4. #include <asm/addrspace.h>
  5. #include <asm/page.h>
  6. #include <asm/thread_info.h>
  7. OUTPUT_ARCH(m32r)
  8. #if defined(__LITTLE_ENDIAN__)
  9. jiffies = jiffies_64;
  10. #else
  11. jiffies = jiffies_64 + 4;
  12. #endif
  13. kernel_entry = boot - 0x80000000;
  14. ENTRY(kernel_entry)
  15. SECTIONS
  16. {
  17. . = CONFIG_MEMORY_START + __PAGE_OFFSET;
  18. eit_vector = .;
  19. . = . + 0x1000;
  20. .empty_zero_page : { *(.empty_zero_page) } = 0
  21. /* read-only */
  22. _text = .; /* Text and read-only data */
  23. .boot : { *(.boot) } = 0
  24. .text : {
  25. HEAD_TEXT
  26. TEXT_TEXT
  27. SCHED_TEXT
  28. LOCK_TEXT
  29. *(.fixup)
  30. *(.gnu.warning)
  31. } = 0x9090
  32. #ifdef CONFIG_SMP
  33. . = ALIGN(65536);
  34. .eit_vector4 : { *(.eit_vector4) }
  35. #endif
  36. _etext = .; /* End of text section */
  37. EXCEPTION_TABLE(16)
  38. NOTES
  39. _sdata = .; /* Start of data section */
  40. RODATA
  41. RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  42. _edata = .; /* End of data section */
  43. /* will be freed after init */
  44. . = ALIGN(PAGE_SIZE); /* Init code and data */
  45. __init_begin = .;
  46. INIT_TEXT_SECTION(PAGE_SIZE)
  47. INIT_DATA_SECTION(16)
  48. PERCPU_SECTION(32)
  49. . = ALIGN(PAGE_SIZE);
  50. __init_end = .;
  51. /* freed after init ends here */
  52. BSS_SECTION(0, 0, 4)
  53. _end = . ;
  54. /* Stabs debugging sections. */
  55. .stab 0 : { *(.stab) }
  56. .stabstr 0 : { *(.stabstr) }
  57. .stab.excl 0 : { *(.stab.excl) }
  58. .stab.exclstr 0 : { *(.stab.exclstr) }
  59. .stab.index 0 : { *(.stab.index) }
  60. .stab.indexstr 0 : { *(.stab.indexstr) }
  61. .comment 0 : { *(.comment) }
  62. /* Sections to be discarded */
  63. DISCARDS
  64. }