]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/amd64/linux32/linux32_vdso.lds.s
linux(4): Retire handmade DWARF annotations from signal trampolines
[FreeBSD/FreeBSD.git] / sys / amd64 / linux32 / linux32_vdso.lds.s
1 /*
2  * Linker script for 32-bit vDSO.
3  * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S
4  * and arch/x86/vdso/vdso32/vdso32.lds.S
5  *
6  * $FreeBSD$
7  */
8
9 SECTIONS
10 {
11         . = . + SIZEOF_HEADERS;
12
13         .hash           : { *(.hash) }                  :text
14         .gnu.hash       : { *(.gnu.hash) }
15         .dynsym         : { *(.dynsym) }
16         .dynstr         : { *(.dynstr) }
17         .gnu.version    : { *(.gnu.version) }
18         .gnu.version_d  : { *(.gnu.version_d) }
19         .gnu.version_r  : { *(.gnu.version_r) }
20
21         .note           : { *(.note.*) }                :text   :note
22
23         .eh_frame_hdr   : { *(.eh_frame_hdr) }          :text   :eh_frame_hdr
24         .eh_frame       : { KEEP (*(.eh_frame)) }       :text
25
26         .dynamic        : { *(.dynamic) }               :text   :dynamic
27
28         .rodata         : { *(.rodata*) }               :text
29         .data           : {
30               *(.data*)
31               *(.sdata*)
32               *(.got.plt) *(.got)
33               *(.gnu.linkonce.d.*)
34               *(.bss*)
35               *(.dynbss*)
36               *(.gnu.linkonce.b.*)
37         }
38
39         .altinstructions        : { *(.altinstructions) }
40         .altinstr_replacement   : { *(.altinstr_replacement) }
41
42         . = ALIGN(0x100);
43         .text           : { *(.text*) }                 :text   =0x90909090
44 }
45
46 PHDRS
47 {
48         text            PT_LOAD         FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
49         dynamic         PT_DYNAMIC      FLAGS(4);               /* PF_R */
50         note            PT_NOTE         FLAGS(4);               /* PF_R */
51         eh_frame_hdr    PT_GNU_EH_FRAME;
52 }
53
54 VERSION
55 {
56         LINUX_2.6 {
57         global:
58                 __vdso_clock_gettime;
59                 __vdso_gettimeofday;
60                 __vdso_time;
61                 __vdso_getcpu;
62                 __vdso_clock_getres;
63                 __vdso_clock_gettime64;
64         };
65
66         LINUX_2.5 {
67         global:
68                 __kernel_vsyscall;
69                 __kernel_sigreturn;
70                 __kernel_rt_sigreturn;
71         local: *;
72         };
73
74         LINUX_0.0 {
75         global:
76                 linux_platform;
77                 kern_timekeep_base;
78                 kern_tsc_selector;
79                 kern_cpu_selector;
80                 linux32_vdso_sigcode;
81                 linux32_vdso_rt_sigcode;
82         local: *;
83         };
84 }