vmlinux.lds.S 1.4 KB

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