link.lds 842 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. OUTPUT_FORMAT("elf64-x86-64","elf64-x86-64","elf64-x86-64")
  2. OUTPUT_ARCH(i386:x86-64)
  3. ENTRY(_start)
  4. SECTIONS
  5. {
  6. KERNEL_VMA = 0xffff800000000000;
  7. //KERNEL_VMA = 0;
  8. . = 0;
  9. . = 0x100000;
  10. .boot.text :
  11. {
  12. KEEP(*(.multiboot_header))
  13. head.o(.bootstrap)
  14. head.o(.bootstrap.code64)
  15. head.o(.bootstrap.data)
  16. . = ALIGN(4096);
  17. }
  18. . += KERNEL_VMA;
  19. .text : AT(ADDR(.text) - KERNEL_VMA)
  20. {
  21. _text = .;
  22. *(.text)
  23. _etext = .;
  24. }
  25. . = ALIGN(8);
  26. .data : AT(ADDR(.data) - KERNEL_VMA)
  27. {
  28. _data = .;
  29. *(.data)
  30. _edata = .;
  31. }
  32. .rodata : AT(ADDR(.rodata) - KERNEL_VMA)
  33. {
  34. _rodata = .;
  35. *(.rodata)
  36. _erodata = .;
  37. }
  38. . = ALIGN(32768);
  39. .data.init_proc_union : AT(ADDR(.data.init_proc_union) - KERNEL_VMA)
  40. { *(.data.init_proc_union) }
  41. .bss : AT(ADDR(.bss) - KERNEL_VMA)
  42. {
  43. _bss = .;
  44. *(.bss)
  45. _ebss = .;
  46. }
  47. _end = .;
  48. }