elf_ia64_efi.lds 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. OUTPUT_FORMAT("elf64-ia64-little")
  2. OUTPUT_ARCH(ia64)
  3. ENTRY(_start_plabel)
  4. SECTIONS
  5. {
  6. . = 0;
  7. ImageBase = .;
  8. /* .hash and/or .gnu.hash MUST come first! */
  9. .hash : { *(.hash) }
  10. .gnu.hash : { *(.gnu.hash) }
  11. . = ALIGN(4096);
  12. .text :
  13. {
  14. _text = .;
  15. *(.text)
  16. *(.text.*)
  17. *(.gnu.linkonce.t.*)
  18. . = ALIGN(16);
  19. }
  20. _etext = .;
  21. _text_size = . - _text;
  22. . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
  23. __gp = ALIGN (8) + 0x200000;
  24. .sdata :
  25. {
  26. _data = .;
  27. *(.got.plt)
  28. *(.got)
  29. *(.srodata)
  30. *(.sdata)
  31. *(.sbss)
  32. *(.scommon)
  33. }
  34. . = ALIGN(4096);
  35. .data :
  36. {
  37. *(.rodata*)
  38. *(.ctors)
  39. *(.data*)
  40. *(.gnu.linkonce.d*)
  41. *(.plabel) /* data whose relocs we want to ignore */
  42. /* the EFI loader doesn't seem to like a .bss section, so we stick
  43. it all into .data: */
  44. *(.dynbss)
  45. *(.bss)
  46. *(COMMON)
  47. }
  48. .note.gnu.build-id : { *(.note.gnu.build-id) }
  49. . = ALIGN(4096);
  50. .dynamic : { *(.dynamic) }
  51. . = ALIGN(4096);
  52. .rela :
  53. {
  54. *(.rela.text)
  55. *(.rela.data*)
  56. *(.rela.sdata)
  57. *(.rela.got)
  58. *(.rela.gnu.linkonce.d*)
  59. *(.rela.stab)
  60. *(.rela.ctors)
  61. }
  62. _edata = .;
  63. _data_size = . - _etext;
  64. . = ALIGN(4096);
  65. .reloc : /* This is the PECOFF .reloc section! */
  66. {
  67. *(.reloc)
  68. }
  69. . = ALIGN(4096);
  70. .dynsym : { *(.dynsym) }
  71. . = ALIGN(4096);
  72. .dynstr : { *(.dynstr) }
  73. . = DATA_SEGMENT_END (.);
  74. /DISCARD/ :
  75. {
  76. *(.rela.plabel)
  77. *(.rela.reloc)
  78. *(.IA_64.unwind*)
  79. *(.IA64.unwind*)
  80. }
  81. }