vmlinux.lds.S 1.4 KB

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