xref: /openbsd-src/libexec/ld.so/alpha/ld.script (revision 805b87ea74e0d6b0f6f35a146ae727de198ab801)
18fd2446cSderaadtPHDRS
28fd2446cSderaadt{
38fd2446cSderaadt	rodata	PT_LOAD FILEHDR PHDRS FLAGS (4);
4c284c86cSderaadt	text	PT_LOAD FLAGS (1);
58fd2446cSderaadt	btext	PT_LOAD FLAGS (0x08000005);
68fd2446cSderaadt	data	PT_LOAD;
78fd2446cSderaadt	random	PT_OPENBSD_RANDOMIZE;
883762a71Sderaadt	syscalls PT_OPENBSD_SYSCALLS;
98fd2446cSderaadt	relro	PT_GNU_RELRO;
108fd2446cSderaadt	dynamic	PT_DYNAMIC;
118fd2446cSderaadt	note	PT_NOTE;
128fd2446cSderaadt}
138fd2446cSderaadt
148fd2446cSderaadtSECTIONS
158fd2446cSderaadt{
168fd2446cSderaadt    /* RODATA */
178fd2446cSderaadt    . = 0 + SIZEOF_HEADERS;
188fd2446cSderaadt    .dynsym	: { *(.dynsym) } :rodata
198fd2446cSderaadt    .gnu.hash	: { *(.gnu.hash) } :rodata
208fd2446cSderaadt    .dynstr	: { *(.dynstr) } :rodata
218fd2446cSderaadt    .rodata	: { *(.rodata .rodata.*) } :rodata
228fd2446cSderaadt    .eh_frame	: { *(.eh_frame) } :rodata
238fd2446cSderaadt
248fd2446cSderaadt    /* TEXT */
258fd2446cSderaadt    . = ALIGN(0x10000);
268fd2446cSderaadt    .boot.text	:
278fd2446cSderaadt    {
288fd2446cSderaadt	. = ALIGN(0x2000);
298fd2446cSderaadt	boot_text_start = .;
308fd2446cSderaadt	. = ALIGN(0x2000);
318fd2446cSderaadt	*(.boot.text)
328fd2446cSderaadt	boot_text_end = .;
338fd2446cSderaadt    } :btext
34*805b87eaSderaadt    . = ALIGN(0x2000);
35*805b87eaSderaadt    .text	: { *(.text .text.*) } :text
368fd2446cSderaadt
378fd2446cSderaadt    /* RELRO DATA */
388fd2446cSderaadt    . = DATA_SEGMENT_ALIGN (0x10000, 0x2000);
398fd2446cSderaadt    .openbsd.randomdata :
408fd2446cSderaadt    {
418fd2446cSderaadt	*(.openbsd.randomdata .openbsd.randomdata.*)
428fd2446cSderaadt    } :data :relro :random
4383762a71Sderaadt    .openbsd.syscalls :
4483762a71Sderaadt    {
4583762a71Sderaadt	*(.openbsd.syscalls .openbsd.syscalls.*)
4683762a71Sderaadt    } :syscalls
478fd2446cSderaadt    .data.rel.ro : { *(.data.rel.ro.local*) *(.data.rel.ro*) } :data :relro
488fd2446cSderaadt    .dynamic	: { *(.dynamic) } :data :relro :dynamic
498fd2446cSderaadt    .got	: { *(.got.plt) *(.got) } :data :relro
508fd2446cSderaadt    . = DATA_SEGMENT_RELRO_END (0, .);
518fd2446cSderaadt
528fd2446cSderaadt    /* BOOTDATA */
538fd2446cSderaadt    . = ALIGN(0x2000);
548fd2446cSderaadt    boot_data_start = .;
558fd2446cSderaadt    .rela.dyn	:
568fd2446cSderaadt    {
578fd2446cSderaadt	*(.rela.text .rela.text.*)
588fd2446cSderaadt	*(.rela.rodata .rela.rodata.*)
598fd2446cSderaadt	*(.rela.data .rela.data.*)
608fd2446cSderaadt	*(.rela.got)
618fd2446cSderaadt	*(.rela.bss .rela.bss.*)
628fd2446cSderaadt    } :data
638fd2446cSderaadt/* XXX .rela.plt is unused but cannot delete: ld.bfd zeros DT_RELASZ then! */
648fd2446cSderaadt    .rela.plt	: { *(.rela.plt) } :data
658fd2446cSderaadt    .hash	: { *(.hash) } :data
668fd2446cSderaadt    .note	: { *(.note.openbsd.*) } :data :note
678fd2446cSderaadt    .boot.data	: { *(.boot.data .boot.data.*) } :data
688fd2446cSderaadt    boot_data_end = .;
698fd2446cSderaadt
708fd2446cSderaadt    /* DATA */
718fd2446cSderaadt    . = ALIGN(0x2000);
728fd2446cSderaadt    .data	: { *(.data .data.*) } :data
738fd2446cSderaadt    .bss	: { *(.dynbss) *(.bss .bss.*) *(COMMON) } :data
748fd2446cSderaadt    . = DATA_SEGMENT_END (.);
758fd2446cSderaadt
768fd2446cSderaadt    /DISCARD/	: { *(.note.GNU-stack) }
778fd2446cSderaadt}
78