1*a9643ea8Slogwang/*
2*a9643ea8Slogwang * Linker script for 64-bit vDSO.
3*a9643ea8Slogwang * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S
4*a9643ea8Slogwang *
5*a9643ea8Slogwang * $FreeBSD$
6*a9643ea8Slogwang */
7*a9643ea8Slogwang
8*a9643ea8SlogwangSECTIONS
9*a9643ea8Slogwang{
10*a9643ea8Slogwang	. = . + SIZEOF_HEADERS;
11*a9643ea8Slogwang
12*a9643ea8Slogwang	.hash		: { *(.hash) }			:text
13*a9643ea8Slogwang	.gnu.hash	: { *(.gnu.hash) }
14*a9643ea8Slogwang	.dynsym		: { *(.dynsym) }
15*a9643ea8Slogwang	.dynstr		: { *(.dynstr) }
16*a9643ea8Slogwang	.gnu.version	: { *(.gnu.version) }
17*a9643ea8Slogwang	.gnu.version_d	: { *(.gnu.version_d) }
18*a9643ea8Slogwang	.gnu.version_r	: { *(.gnu.version_r) }
19*a9643ea8Slogwang
20*a9643ea8Slogwang	.note		: { *(.note.*) }		:text	:note
21*a9643ea8Slogwang
22*a9643ea8Slogwang	.eh_frame_hdr	: { *(.eh_frame_hdr) }		:text	:eh_frame_hdr
23*a9643ea8Slogwang	.eh_frame	: { KEEP (*(.eh_frame)) }	:text
24*a9643ea8Slogwang
25*a9643ea8Slogwang	.dynamic	: { *(.dynamic) }		:text	:dynamic
26*a9643ea8Slogwang
27*a9643ea8Slogwang	.rodata		: { *(.rodata*) }		:text
28*a9643ea8Slogwang	.data		: {
29*a9643ea8Slogwang	      *(.data*)
30*a9643ea8Slogwang	      *(.sdata*)
31*a9643ea8Slogwang	      *(.got.plt) *(.got)
32*a9643ea8Slogwang	      *(.gnu.linkonce.d.*)
33*a9643ea8Slogwang	      *(.bss*)
34*a9643ea8Slogwang	      *(.dynbss*)
35*a9643ea8Slogwang	      *(.gnu.linkonce.b.*)
36*a9643ea8Slogwang	}
37*a9643ea8Slogwang
38*a9643ea8Slogwang	.altinstructions	: { *(.altinstructions) }
39*a9643ea8Slogwang	.altinstr_replacement	: { *(.altinstr_replacement) }
40*a9643ea8Slogwang
41*a9643ea8Slogwang	. = ALIGN(0x100);
42*a9643ea8Slogwang	.text		: { *(.test .text*) }			:text	=0x90909090
43*a9643ea8Slogwang}
44*a9643ea8Slogwang
45*a9643ea8SlogwangPHDRS
46*a9643ea8Slogwang{
47*a9643ea8Slogwang	text		PT_LOAD		FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
48*a9643ea8Slogwang	dynamic		PT_DYNAMIC	FLAGS(4);		/* PF_R */
49*a9643ea8Slogwang	note		PT_NOTE		FLAGS(4);		/* PF_R */
50*a9643ea8Slogwang	eh_frame_hdr	PT_GNU_EH_FRAME;
51*a9643ea8Slogwang}
52*a9643ea8Slogwang
53*a9643ea8SlogwangVERSION
54*a9643ea8Slogwang{
55*a9643ea8Slogwang	LINUX_2.6 {
56*a9643ea8Slogwang	global:
57*a9643ea8Slogwang		time;
58*a9643ea8Slogwang		__vdso_time;
59*a9643ea8Slogwang		gettimeofday;
60*a9643ea8Slogwang		__vdso_gettimeofday;
61*a9643ea8Slogwang		getcpu;
62*a9643ea8Slogwang		__vdso_getcpu;
63*a9643ea8Slogwang		clock_gettime;
64*a9643ea8Slogwang		__vdso_clock_gettime;
65*a9643ea8Slogwang		linux_rt_sigcode;
66*a9643ea8Slogwang		linux_platform;
67*a9643ea8Slogwang	local: *;
68*a9643ea8Slogwang	};
69*a9643ea8Slogwang}
70