xref: /linux/arch/riscv/kernel/vdso_cfi/Makefile (revision cee73b1e840c154f64ace682cb477c1ae2e29cc4)
1*ccad8c13SDeepak Gupta# SPDX-License-Identifier: GPL-2.0-only
2*ccad8c13SDeepak Gupta# RISC-V VDSO CFI Makefile
3*ccad8c13SDeepak Gupta# This Makefile builds the VDSO with CFI support when CONFIG_RISCV_USER_CFI is enabled
4*ccad8c13SDeepak Gupta
5*ccad8c13SDeepak Gupta# setting VDSO_CFI_BUILD triggers build for vdso differently
6*ccad8c13SDeepak GuptaVDSO_CFI_BUILD := 1
7*ccad8c13SDeepak Gupta
8*ccad8c13SDeepak Gupta# Set the source directory to the main vdso directory
9*ccad8c13SDeepak Guptasrc := $(srctree)/arch/riscv/kernel/vdso
10*ccad8c13SDeepak Gupta
11*ccad8c13SDeepak Gupta# Copy all .S and .c files from vdso directory to vdso_cfi object build directory
12*ccad8c13SDeepak Guptavdso_c_sources := $(wildcard $(src)/*.c)
13*ccad8c13SDeepak Guptavdso_S_sources := $(wildcard $(src)/*.S)
14*ccad8c13SDeepak Guptavdso_c_objects := $(addprefix $(obj)/, $(notdir $(vdso_c_sources)))
15*ccad8c13SDeepak Guptavdso_S_objects := $(addprefix $(obj)/, $(notdir $(vdso_S_sources)))
16*ccad8c13SDeepak Gupta
17*ccad8c13SDeepak Gupta$(vdso_S_objects): $(obj)/%.S: $(src)/%.S
18*ccad8c13SDeepak Gupta	$(Q)cp $< $@
19*ccad8c13SDeepak Gupta
20*ccad8c13SDeepak Gupta$(vdso_c_objects): $(obj)/%.c: $(src)/%.c
21*ccad8c13SDeepak Gupta	$(Q)cp $< $@
22*ccad8c13SDeepak Gupta
23*ccad8c13SDeepak Gupta# Include the main VDSO Makefile which contains all the build rules and sources
24*ccad8c13SDeepak Gupta# The VDSO_CFI_BUILD variable will be passed to it to enable CFI compilation
25*ccad8c13SDeepak Guptainclude $(src)/Makefile
26