33385150ac
Hook up the generic vDSO implementation to the x86 vDSO data page. Since the existing vDSO infrastructure is heavily based on the timekeeping functionality, which works over arrays of bases, a new macro is introduced for vvars that are not arrays. The vDSO function requires a ChaCha20 implementation that does not write to the stack, yet can still do an entire ChaCha20 permutation, so provide this using SSE2, since this is userland code that must work on all x86-64 processors. Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Samuel Neves <sneves@dei.uc.pt> # for vgetrandom-chacha.S Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
38 lines
657 B
ArmAsm
38 lines
657 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Linker script for 64-bit vDSO.
|
|
* We #include the file to define the layout details.
|
|
*
|
|
* This file defines the version script giving the user-exported symbols in
|
|
* the DSO.
|
|
*/
|
|
|
|
#define BUILD_VDSO64
|
|
|
|
#include "vdso-layout.lds.S"
|
|
|
|
/*
|
|
* This controls what userland symbols we export from the vDSO.
|
|
*/
|
|
VERSION {
|
|
LINUX_2.6 {
|
|
global:
|
|
clock_gettime;
|
|
__vdso_clock_gettime;
|
|
gettimeofday;
|
|
__vdso_gettimeofday;
|
|
getcpu;
|
|
__vdso_getcpu;
|
|
time;
|
|
__vdso_time;
|
|
clock_getres;
|
|
__vdso_clock_getres;
|
|
#ifdef CONFIG_X86_SGX
|
|
__vdso_sgx_enter_enclave;
|
|
#endif
|
|
getrandom;
|
|
__vdso_getrandom;
|
|
local: *;
|
|
};
|
|
}
|