1c0a58aa7SmiodPHDRS 2c0a58aa7Smiod{ 3c0a58aa7Smiod rodata PT_LOAD FILEHDR PHDRS FLAGS (4); 4c0a58aa7Smiod btext PT_LOAD FLAGS (0x08000005); 5805b87eaSderaadt text PT_LOAD; 6c0a58aa7Smiod data PT_LOAD; 7c0a58aa7Smiod random PT_OPENBSD_RANDOMIZE; 8f73a2a97Saoyama syscalls PT_OPENBSD_SYSCALLS; 9c0a58aa7Smiod relro PT_GNU_RELRO; 10c0a58aa7Smiod dynamic PT_DYNAMIC; 11c0a58aa7Smiod note PT_NOTE; 12c0a58aa7Smiod} 13c0a58aa7Smiod 14c0a58aa7SmiodSECTIONS 15c0a58aa7Smiod{ 16c0a58aa7Smiod . = 0 + SIZEOF_HEADERS; 17c0a58aa7Smiod /* RODATA */ 18c0a58aa7Smiod .gnu.hash : { *(.gnu.hash) } :rodata 19c0a58aa7Smiod .dynsym : { *(.dynsym) } :rodata 20c0a58aa7Smiod .dynstr : { *(.dynstr) } :rodata 21c0a58aa7Smiod .rodata : { *(.rodata .rodata.*) } :rodata 22c0a58aa7Smiod .eh_frame : { *(.eh_frame) } :rodata 23c0a58aa7Smiod 24c0a58aa7Smiod /* TEXT */ 25c0a58aa7Smiod . = ALIGN(0x1000); 26c0a58aa7Smiod .boot.text : 27c0a58aa7Smiod { 28c0a58aa7Smiod boot_text_start = .; 29c0a58aa7Smiod . = ALIGN(0x1000); 30c0a58aa7Smiod *(.boot.text) 31c0a58aa7Smiod boot_text_end = .; 32*2584d4c0Smiod } :btext =0xf400fc01 33c0a58aa7Smiod . = ALIGN(0x1000); 34*2584d4c0Smiod .text : { *(.text .text.*) } :text =0xf400fc01 35c0a58aa7Smiod 36c0a58aa7Smiod /* RELRO DATA */ 37c0a58aa7Smiod . = DATA_SEGMENT_ALIGN (0x10000, 0x1000); 38c0a58aa7Smiod .openbsd.randomdata : { *(.openbsd.randomdata .openbsd.randomdata.*) } 39c0a58aa7Smiod :data :relro :random 4083762a71Sderaadt .openbsd.syscalls : { *(.openbsd.syscalls .openbsd.syscalls.*) } 4183762a71Sderaadt :syscalls 4283762a71Sderaadt 43c0a58aa7Smiod .data.rel.ro : { *(.data.rel.ro.local*) *(.data.rel.ro*) } :data :relro 44c0a58aa7Smiod .dynamic : { *(.dynamic) } :data :relro :dynamic 45c0a58aa7Smiod .got : { *(.got.plt) *(.got) } :data :relro 46c0a58aa7Smiod . = DATA_SEGMENT_RELRO_END (0, .); 47c0a58aa7Smiod 48c0a58aa7Smiod /* BOOTDATA */ 49c0a58aa7Smiod . = ALIGN(0x1000); 50c0a58aa7Smiod boot_data_start = .; 51c0a58aa7Smiod .rela.dyn : 52c0a58aa7Smiod { 53c0a58aa7Smiod *(.rela.text .rela.text.*) 54c0a58aa7Smiod *(.rela.rodata .rela.rodata.*) 55c0a58aa7Smiod *(.rela.data .rela.data.*) 56c0a58aa7Smiod *(.rela.got) 57c0a58aa7Smiod *(.rela.bss .rela.bss.*) 58c0a58aa7Smiod } :data 59c0a58aa7Smiod .rela.plt : { *(.rela.plt) } :data 60c0a58aa7Smiod .note : { *(.note.openbsd.*) } :data :note 61c0a58aa7Smiod .hash : { *(.hash) } :data 62c0a58aa7Smiod .boot.data : { *(.boot.data .boot.data.*) } :data 63c0a58aa7Smiod 64c0a58aa7Smiod /* DATA */ 65c0a58aa7Smiod . = ALIGN(0x1000); 66c0a58aa7Smiod .data : { *(.data .data.*) } :data 67c0a58aa7Smiod .bss : { *(.dynbss) *(.bss .bss.*) *(COMMON) } :data 68c0a58aa7Smiod . = DATA_SEGMENT_END (.); 69c0a58aa7Smiod} 70