1 |
/* $MidnightBSD$ */ |
2 |
/* |
3 |
* Linker script for 32-bit vDSO. |
4 |
* Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S |
5 |
* and arch/x86/vdso/vdso32/vdso32.lds.S |
6 |
* |
7 |
* $FreeBSD: stable/10/sys/i386/linux/linux_vdso.lds.s 293514 2016-01-09 15:44:38Z dchagin $ |
8 |
*/ |
9 |
|
10 |
SECTIONS |
11 |
{ |
12 |
. = . + SIZEOF_HEADERS; |
13 |
|
14 |
.hash : { *(.hash) } :text |
15 |
.gnu.hash : { *(.gnu.hash) } |
16 |
.dynsym : { *(.dynsym) } |
17 |
.dynstr : { *(.dynstr) } |
18 |
.gnu.version : { *(.gnu.version) } |
19 |
.gnu.version_d : { *(.gnu.version_d) } |
20 |
.gnu.version_r : { *(.gnu.version_r) } |
21 |
|
22 |
.note : { *(.note.*) } :text :note |
23 |
|
24 |
.eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr |
25 |
.eh_frame : { KEEP (*(.eh_frame)) } :text |
26 |
|
27 |
.dynamic : { *(.dynamic) } :text :dynamic |
28 |
|
29 |
.rodata : { *(.rodata*) } :text |
30 |
.data : { |
31 |
*(.data*) |
32 |
*(.sdata*) |
33 |
*(.got.plt) *(.got) |
34 |
*(.gnu.linkonce.d.*) |
35 |
*(.bss*) |
36 |
*(.dynbss*) |
37 |
*(.gnu.linkonce.b.*) |
38 |
} |
39 |
|
40 |
.altinstructions : { *(.altinstructions) } |
41 |
.altinstr_replacement : { *(.altinstr_replacement) } |
42 |
|
43 |
. = ALIGN(0x100); |
44 |
.text : { *(.text*) } :text =0x90909090 |
45 |
} |
46 |
|
47 |
PHDRS |
48 |
{ |
49 |
text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ |
50 |
dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ |
51 |
note PT_NOTE FLAGS(4); /* PF_R */ |
52 |
eh_frame_hdr PT_GNU_EH_FRAME; |
53 |
} |
54 |
|
55 |
ENTRY(linux_vsyscall); |
56 |
|
57 |
VERSION |
58 |
{ |
59 |
LINUX_2.5 { |
60 |
global: |
61 |
linux_vsyscall; |
62 |
linux_sigcode; |
63 |
linux_rt_sigcode; |
64 |
local: *; |
65 |
}; |
66 |
} |