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