arch/riscv/kernel/vdso_cfi/Makefile

Source file repositories/reference/linux-study-clean/arch/riscv/kernel/vdso_cfi/Makefile

File Facts

System
Linux kernel
Corpus path
arch/riscv/kernel/vdso_cfi/Makefile
Extension
[no extension]
Size
1048 bytes
Lines
29
Domain
Architecture Layer
Bucket
arch/riscv
Inferred role
Architecture Layer: build/configuration rule
Status
atlas-only

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0-only
# RISC-V VDSO CFI Makefile
# This Makefile builds the VDSO with CFI support when CONFIG_RISCV_USER_CFI is enabled

# setting VDSO_CFI_BUILD triggers build for vdso differently
VDSO_CFI_BUILD := 1

# Set the source directory to the main vdso directory
src := $(srctree)/arch/riscv/kernel/vdso

# Copy all .S and .c files from vdso directory to vdso_cfi object build directory
vdso_c_sources := $(wildcard $(src)/*.c)
vdso_S_sources := $(wildcard $(src)/*.S)
vdso_c_objects := $(addprefix $(obj)/, $(notdir $(vdso_c_sources)))
vdso_S_objects := $(addprefix $(obj)/, $(notdir $(vdso_S_sources)))

$(vdso_S_objects): $(obj)/%.S: $(src)/%.S
	$(Q)cp $< $@

$(vdso_c_objects): $(obj)/%.c: $(src)/%.c
	$(Q)cp $< $@

# Include the main VDSO Makefile which contains all the build rules and sources
# The VDSO_CFI_BUILD variable will be passed to it to enable CFI compilation
include $(src)/Makefile

# Clean rules - remove the copied source files
clean-files += $(notdir $(vdso_c_sources)) $(notdir $(vdso_S_sources))

Annotation

Implementation Notes