OUTPUT_FORMAT("elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)

PHDRS
{
  text   PT_LOAD FLAGS(5);
  rodata PT_LOAD FLAGS(4);
  data   PT_LOAD FLAGS(6);
}

SECTIONS
{
  . = 0x100000 + SIZEOF_HEADERS;

  .text : ALIGN(4096) {
    *(.text*)
    *(.gnu.linkonce.t.*)
  } :text

  .rodata : ALIGN(4096) {
    *(.rodata*)
    *(.gnu.linkonce.r.*)
  } :rodata

  .data : ALIGN(4096) {
    *(.data*)
    *(.gnu.linkonce.d.*)
  } :data

  .bss : ALIGN(4096) {
    __bss_start = .;
    *(.bss*)
    *(COMMON)
    __bss_end = .;
  } :data

  /DISCARD/ : {
    *(.comment)
    *(.note.*)
    *(.eh_frame*)
    *(.gcc_except_table*)
    *(.note.GNU-stack)
  }
}
