vmlinux.lds.S 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include <asm-generic/vmlinux.lds.h>
  2. #include <asm/thread_info.h>
  3. #include <asm/cache.h>
  4. #include <asm/page.h>
  5. OUTPUT_FORMAT("elf64-alpha")
  6. OUTPUT_ARCH(alpha)
  7. ENTRY(__start)
  8. PHDRS { kernel PT_LOAD; note PT_NOTE; }
  9. jiffies = jiffies_64;
  10. SECTIONS
  11. {
  12. #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
  13. . = 0xfffffc0000310000;
  14. #else
  15. . = 0xfffffc0001010000;
  16. #endif
  17. _text = .; /* Text and read-only data */
  18. .text : {
  19. HEAD_TEXT
  20. TEXT_TEXT
  21. SCHED_TEXT
  22. LOCK_TEXT
  23. *(.fixup)
  24. *(.gnu.warning)
  25. } :kernel
  26. _etext = .; /* End of text section */
  27. NOTES :kernel :note
  28. .dummy : {
  29. *(.dummy)
  30. } :kernel
  31. RODATA
  32. EXCEPTION_TABLE(16)
  33. /* Will be freed after init */
  34. __init_begin = ALIGN(PAGE_SIZE);
  35. INIT_TEXT_SECTION(PAGE_SIZE)
  36. INIT_DATA_SECTION(16)
  37. PERCPU(L1_CACHE_BYTES, PAGE_SIZE)
  38. /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
  39. needed for the THREAD_SIZE aligned init_task gets freed after init */
  40. . = ALIGN(THREAD_SIZE);
  41. __init_end = .;
  42. /* Freed after init ends here */
  43. _data = .;
  44. RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
  45. .got : {
  46. *(.got)
  47. }
  48. .sdata : {
  49. *(.sdata)
  50. }
  51. _edata = .; /* End of data section */
  52. BSS_SECTION(0, 0, 0)
  53. _end = .;
  54. .mdebug 0 : {
  55. *(.mdebug)
  56. }
  57. .note 0 : {
  58. *(.note)
  59. }
  60. STABS_DEBUG
  61. DWARF_DEBUG
  62. DISCARDS
  63. }