vmlinux.lds.S 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. CPUIDLE_TEXT
  29. LOCK_TEXT
  30. *(.fixup)
  31. *(.gnu.warning)
  32. } = 0x9090
  33. #ifdef CONFIG_SMP
  34. . = ALIGN(65536);
  35. .eit_vector4 : { *(.eit_vector4) }
  36. #endif
  37. _etext = .; /* End of text section */
  38. EXCEPTION_TABLE(16)
  39. NOTES
  40. _sdata = .; /* Start of data section */
  41. RODATA
  42. RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  43. _edata = .; /* End of data section */
  44. /* will be freed after init */
  45. . = ALIGN(PAGE_SIZE); /* Init code and data */
  46. __init_begin = .;
  47. INIT_TEXT_SECTION(PAGE_SIZE)
  48. INIT_DATA_SECTION(16)
  49. PERCPU_SECTION(32)
  50. . = ALIGN(PAGE_SIZE);
  51. __init_end = .;
  52. /* freed after init ends here */
  53. BSS_SECTION(0, 0, 4)
  54. _end = . ;
  55. /* Stabs debugging sections. */
  56. .stab 0 : { *(.stab) }
  57. .stabstr 0 : { *(.stabstr) }
  58. .stab.excl 0 : { *(.stab.excl) }
  59. .stab.exclstr 0 : { *(.stab.exclstr) }
  60. .stab.index 0 : { *(.stab.index) }
  61. .stab.indexstr 0 : { *(.stab.indexstr) }
  62. .comment 0 : { *(.comment) }
  63. /* Sections to be discarded */
  64. DISCARDS
  65. }