vmlinux.lds.S 1.4 KB

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