]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/conf/vdso_amd64.ldscript
MFV f83ac37f1e66: libbsdxml (expat) 2.4.3.
[FreeBSD/FreeBSD.git] / sys / conf / vdso_amd64.ldscript
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3  *
4  * Copyright (c) 2021 The FreeBSD Foundation
5  *
6  * This software was developed by Konstantin Belousov <kib@FreeBSD.org>
7  * under sponsorship from the FreeBSD Foundation.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28  * SUCH DAMAGE.
29  */
30
31 /*
32  * Linker script for amd64 vdso.
33  */
34
35 PHDRS
36 {
37         text            PT_LOAD         FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
38         dynamic         PT_DYNAMIC      FLAGS(5);
39         eh_frame_hdr    PT_GNU_EH_FRAME FLAGS(5);
40 }
41
42 SECTIONS
43 {
44         . = . + SIZEOF_HEADERS;
45
46         .hash           : { *(.hash) }                  :text
47         .gnu.hash       : { *(.gnu.hash) }              :text
48         .dynsym         : { *(.dynsym) }                :text
49         .dynstr         : { *(.dynstr) }                :text
50         .gnu.version    : { *(.gnu.version) }           :text
51         .gnu.version_d  : { *(.gnu.version_d) }         :text
52         .gnu.version_r  : { *(.gnu.version_r) }         :text
53         .eh_frame_hdr   : { *(.eh_frame_hdr) }          :text   :eh_frame_hdr
54         .eh_frame       : { KEEP (*(.eh_frame)) }       :text
55         .dynamic        : { *(.dynamic) }               :text   :dynamic
56         .rodata         : { *(.rodata*) }               :text
57         .data : {
58               *(.got.plt) *(.got)
59         } :text
60         /DISCARD/ /* .data */: {
61               *(.data*)
62               *(.sdata*)
63               *(.gnu.linkonce.d.*)
64               *(.bss*)
65               *(.dynbss*)
66               *(.gnu.linkonce.b.*)
67               *(.ctors)
68               *(.dtors)
69               *(.jcr)
70               *(.init_array)
71               *(.init)
72               *(.fini)
73               *(.debug*)
74               *(.comment)
75         }
76
77         . = ALIGN(0x10);
78         .text           : { *(.text .text*) }           :text   =0x90909090
79 }
80
81 VERSION
82 {
83         FBSD_1.7 {
84                 global:
85                         __vdso_sigcode;
86                 local:
87                         *;
88         };
89 }