]>
Commit | Line | Data |
---|---|---|
a9f495b9 RH |
1 | /* |
2 | * Linker script for linux arm replacement vdso. | |
3 | * | |
4 | * Copyright 2023 Linaro, Ltd. | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.0-or-later | |
7 | */ | |
8 | ||
9 | VERSION { | |
10 | LINUX_2.6 { | |
11 | global: | |
12 | __vdso_clock_gettime; | |
13 | __vdso_gettimeofday; | |
14 | __vdso_clock_getres; | |
15 | __vdso_clock_gettime64; | |
16 | ||
17 | local: *; | |
18 | }; | |
19 | } | |
20 | ||
21 | ||
22 | PHDRS { | |
23 | phdr PT_PHDR FLAGS(4) PHDRS; | |
24 | load PT_LOAD FLAGS(7) FILEHDR PHDRS; /* FLAGS=RWX */ | |
25 | dynamic PT_DYNAMIC FLAGS(4); | |
26 | eh_frame_hdr PT_GNU_EH_FRAME; | |
27 | note PT_NOTE FLAGS(4); | |
28 | } | |
29 | ||
30 | SECTIONS { | |
31 | . = SIZEOF_HEADERS; | |
32 | ||
33 | /* | |
34 | * The following, including the FILEHDRS and PHDRS, are modified | |
35 | * when we relocate the binary. We want them to be initially | |
36 | * writable for the relocation; we'll force them read-only after. | |
37 | */ | |
38 | .note : { *(.note*) } :load :note | |
39 | .dynamic : { *(.dynamic) } :load :dynamic | |
40 | .dynsym : { *(.dynsym) } :load | |
41 | /* | |
42 | * There ought not be any real read-write data. | |
43 | * But since we manipulated the segment layout, | |
44 | * we have to put these sections somewhere. | |
45 | */ | |
46 | .data : { | |
47 | *(.data*) | |
48 | *(.sdata*) | |
49 | *(.got.plt) *(.got) | |
50 | *(.gnu.linkonce.d.*) | |
51 | *(.bss*) | |
52 | *(.dynbss*) | |
53 | *(.gnu.linkonce.b.*) | |
54 | } | |
55 | ||
56 | .rodata : { *(.rodata*) } | |
57 | .hash : { *(.hash) } | |
58 | .gnu.hash : { *(.gnu.hash) } | |
59 | .dynstr : { *(.dynstr) } | |
60 | .gnu.version : { *(.gnu.version) } | |
61 | .gnu.version_d : { *(.gnu.version_d) } | |
62 | .gnu.version_r : { *(.gnu.version_r) } | |
63 | .eh_frame_hdr : { *(.eh_frame_hdr) } :load :eh_frame_hdr | |
64 | .eh_frame : { *(.eh_frame) } :load | |
65 | ||
66 | .text : { *(.text*) } :load | |
67 | } |