pal.lds 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. OUTPUT_FORMAT("elf64-x86-64-freebsd", "elf64-x86-64-freebsd", "elf64-x86-64-freebsd")
  2. OUTPUT_ARCH(i386:x86-64)
  3. ENTRY(pal_start);
  4. SECTIONS
  5. {
  6. /* Read-only sections, merged into text segment; */
  7. __text_start = .;
  8. . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
  9. .note.gnu.build-id : { *(.note.gnu.build-id) }
  10. .hash : { *(.hash) }
  11. .gnu.hash : { *(.gnu.hash) }
  12. .dynsym : { *(.dynsym) }
  13. .dynstr : { *(.dynstr) }
  14. .gnu.version : { *(.gnu.version) }
  15. .gnu.version_d : { *(.gnu.version_d) }
  16. .gnu.version_r : { *(.gnu.version_r) }
  17. .rela.dyn :
  18. {
  19. *(.rela.init)
  20. *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
  21. *(.rela.fini)
  22. *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
  23. *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
  24. *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
  25. *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
  26. *(.rela.ctors)
  27. *(.rela.dtors)
  28. *(.rela.got)
  29. *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
  30. *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
  31. *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
  32. *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
  33. *(.rela.ifunc)
  34. }
  35. .rela.plt :
  36. {
  37. *(.rela.plt)
  38. *(.rela.iplt)
  39. }
  40. .init : { *(.init) }
  41. .plt : { *(.plt) *(.iplt) }
  42. .text :
  43. {
  44. /* the rest of text segments */
  45. *(.text .stub .text.*);
  46. }
  47. .fini : { *(.fini) }
  48. .rodata :
  49. {
  50. /* the rest of rodata */
  51. *(.rodata .rodata.*)
  52. }
  53. .rodata1 : { *(.rodata1) }
  54. .eh_frame_hdr : { *(.eh_frame_hdr) }
  55. .eh_frame : ONLY_IF_RO { *(.eh_frame) }
  56. __text_end = .;
  57. /* now adjust the address for the data segment */
  58. . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
  59. __data_start = .;
  60. .eh_frame : ONLY_IF_RW { *(.eh_frame) }
  61. .data.rel.ro : { *(.data.rel.ro) }
  62. .ctors : { *(.ctors) }
  63. .dtors : { *(.dtors) }
  64. .jcr : { *(.jcr) }
  65. .dynamic : { *(.dynamic) }
  66. .got : { *(.got) *(.igot) }
  67. .got.plt : { *(.got.plt) *(.igot.plt) }
  68. .data :
  69. {
  70. /* the rest of data segment */
  71. *(.data .data.*);
  72. }
  73. .bss :
  74. {
  75. *(.bss .bss.*)
  76. *(COMMON)
  77. }
  78. . = DATA_SEGMENT_END(.);
  79. __data_end = .;
  80. }