1/*
2 * SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2005-2017 Andes Technology Corporation
4 */
5
6
7#include <linux/const.h>
8#include <asm/page.h>
9#include <asm/vdso.h>
10
11OUTPUT_ARCH(nds32)
12
13SECTIONS
14{
15	. = SIZEOF_HEADERS;
16
17	.hash		: { *(.hash) }			:text
18	.gnu.hash	: { *(.gnu.hash) }
19	.dynsym		: { *(.dynsym) }
20	.dynstr		: { *(.dynstr) }
21	.gnu.version	: { *(.gnu.version) }
22	.gnu.version_d	: { *(.gnu.version_d) }
23	.gnu.version_r	: { *(.gnu.version_r) }
24
25	.note		: { *(.note.*) }		:text	:note
26
27
28	.text		: { *(.text*) }			:text
29
30	.eh_frame_hdr	: { *(.eh_frame_hdr) }		:text	:eh_frame_hdr
31	.eh_frame	: { KEEP (*(.eh_frame)) }	:text
32
33	.dynamic	: { *(.dynamic) }		:text	:dynamic
34
35	.rodata		: { *(.rodata*) }		:text
36
37
38	/DISCARD/	: {
39		*(.note.GNU-stack)
40		*(.data .data.* .gnu.linkonce.d.* .sdata*)
41		*(.bss .sbss .dynbss .dynsbss)
42	}
43}
44
45/*
46 * We must supply the ELF program headers explicitly to get just one
47 * PT_LOAD segment, and set the flags explicitly to make segments read-only.
48 */
49PHDRS
50{
51	text		PT_LOAD		FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
52	dynamic		PT_DYNAMIC	FLAGS(4);		/* PF_R */
53	note		PT_NOTE		FLAGS(4);		/* PF_R */
54	eh_frame_hdr	PT_GNU_EH_FRAME;
55}
56
57/*
58 * This controls what symbols we export from the DSO.
59 */
60VERSION
61{
62	LINUX_4 {
63	global:
64		__kernel_rt_sigreturn;
65		__vdso_gettimeofday;
66		__vdso_clock_getres;
67		__vdso_clock_gettime;
68	local: *;
69	};
70}
71
72/*
73 * Make the rt_sigreturn code visible to the kernel.
74 */
75VDSO_rt_sigtramp	= __kernel_rt_sigreturn;
76