1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun/* Various wrappers to make the kernel .S file build in user-space: */ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun// memcpy_orig and memcpy_erms are being defined as SYM_L_LOCAL but we need it 6*4882a593Smuzhiyun#define SYM_FUNC_START_LOCAL(name) \ 7*4882a593Smuzhiyun SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN) 8*4882a593Smuzhiyun#define memcpy MEMCPY /* don't hide glibc's memcpy() */ 9*4882a593Smuzhiyun#define altinstr_replacement text 10*4882a593Smuzhiyun#define globl p2align 4; .globl 11*4882a593Smuzhiyun#define _ASM_EXTABLE_FAULT(x, y) 12*4882a593Smuzhiyun#define _ASM_EXTABLE(x, y) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun#include "../../arch/x86/lib/memcpy_64.S" 15*4882a593Smuzhiyun/* 16*4882a593Smuzhiyun * We need to provide note.GNU-stack section, saying that we want 17*4882a593Smuzhiyun * NOT executable stack. Otherwise the final linking will assume that 18*4882a593Smuzhiyun * the ELF stack should not be restricted at all and set it RWX. 19*4882a593Smuzhiyun */ 20*4882a593Smuzhiyun.section .note.GNU-stack,"",@progbits 21