cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vdso.lds.S (1831B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2012 Regents of the University of California
      4 */
      5#include <asm/page.h>
      6#include <asm/vdso.h>
      7
      8OUTPUT_ARCH(riscv)
      9
     10SECTIONS
     11{
     12	PROVIDE(_vdso_data = . - __VVAR_PAGES * PAGE_SIZE);
     13#ifdef CONFIG_TIME_NS
     14	PROVIDE(_timens_data = _vdso_data + PAGE_SIZE);
     15#endif
     16	. = SIZEOF_HEADERS;
     17
     18	.hash		: { *(.hash) }			:text
     19	.gnu.hash	: { *(.gnu.hash) }
     20	.dynsym		: { *(.dynsym) }
     21	.dynstr		: { *(.dynstr) }
     22	.gnu.version	: { *(.gnu.version) }
     23	.gnu.version_d	: { *(.gnu.version_d) }
     24	.gnu.version_r	: { *(.gnu.version_r) }
     25
     26	.note		: { *(.note.*) }		:text	:note
     27	.dynamic	: { *(.dynamic) }		:text	:dynamic
     28
     29	.eh_frame_hdr	: { *(.eh_frame_hdr) }		:text	:eh_frame_hdr
     30	.eh_frame	: { KEEP (*(.eh_frame)) }	:text
     31
     32	.rodata		: { *(.rodata .rodata.* .gnu.linkonce.r.*) }
     33
     34	/*
     35	 * This linker script is used both with -r and with -shared.
     36	 * For the layouts to match, we need to skip more than enough
     37	 * space for the dynamic symbol table, etc. If this amount is
     38	 * insufficient, ld -shared will error; simply increase it here.
     39	 */
     40	. = 0x800;
     41	.text		: { *(.text .text.*) }		:text
     42
     43	.data		: {
     44		*(.got.plt) *(.got)
     45		*(.data .data.* .gnu.linkonce.d.*)
     46		*(.dynbss)
     47		*(.bss .bss.* .gnu.linkonce.b.*)
     48	}
     49}
     50
     51/*
     52 * We must supply the ELF program headers explicitly to get just one
     53 * PT_LOAD segment, and set the flags explicitly to make segments read-only.
     54 */
     55PHDRS
     56{
     57	text		PT_LOAD		FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
     58	dynamic		PT_DYNAMIC	FLAGS(4);		/* PF_R */
     59	note		PT_NOTE		FLAGS(4);		/* PF_R */
     60	eh_frame_hdr	PT_GNU_EH_FRAME;
     61}
     62
     63/*
     64 * This controls what symbols we export from the DSO.
     65 */
     66VERSION
     67{
     68	LINUX_4.15 {
     69	global:
     70		__vdso_rt_sigreturn;
     71		__vdso_gettimeofday;
     72		__vdso_clock_gettime;
     73		__vdso_clock_getres;
     74		__vdso_getcpu;
     75		__vdso_flush_icache;
     76	local: *;
     77	};
     78}