xref: /openbsd/libexec/ld.so/m88k/ld.script (revision c0a58aa7)
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