mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-09 15:24:32 +08:00
45be2ad007
Recently, ld.lld moved from '--undefined-version' to
'--no-undefined-version' as the default, which breaks building the vDSO
when CONFIG_X86_SGX is not set:
ld.lld: error: version script assignment of 'LINUX_2.6' to symbol '__vdso_sgx_enter_enclave' failed: symbol not defined
__vdso_sgx_enter_enclave is only included in the vDSO when
CONFIG_X86_SGX is set. Only export it if it will be present in the final
object, which clears up the error.
Fixes: 8466436952
("x86/vdso: Implement a vDSO for Intel SGX enclave call")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1756
Link: https://lore.kernel.org/r/20221109000306.1407357-1-nathan@kernel.org
36 lines
624 B
ArmAsm
36 lines
624 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
|
|
local: *;
|
|
};
|
|
}
|