vmlinux.lds.S 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. RODATA
  40. RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  41. _edata = .; /* End of data section */
  42. /* will be freed after init */
  43. . = ALIGN(PAGE_SIZE); /* Init code and data */
  44. __init_begin = .;
  45. INIT_TEXT_SECTION(PAGE_SIZE)
  46. INIT_DATA_SECTION(16)
  47. PERCPU(PAGE_SIZE)
  48. . = ALIGN(PAGE_SIZE);
  49. __init_end = .;
  50. /* freed after init ends here */
  51. BSS_SECTION(0, 0, 4)
  52. _end = . ;
  53. /* Stabs debugging sections. */
  54. .stab 0 : { *(.stab) }
  55. .stabstr 0 : { *(.stabstr) }
  56. .stab.excl 0 : { *(.stab.excl) }
  57. .stab.exclstr 0 : { *(.stab.exclstr) }
  58. .stab.index 0 : { *(.stab.index) }
  59. .stab.indexstr 0 : { *(.stab.indexstr) }
  60. .comment 0 : { *(.comment) }
  61. /* Sections to be discarded */
  62. DISCARDS
  63. }