xref: /linux/tools/testing/selftests/riscv/cfi/Makefile (revision 39f1c201b93f4ff71631bac72cff6eb155f976a4)
1# SPDX-License-Identifier: GPL-2.0
2
3CFLAGS += $(KHDR_INCLUDES)
4CFLAGS += -I$(top_srcdir)/tools/include
5
6CFLAGS += -march=rv64gc_zicfilp_zicfiss -fcf-protection=full
7
8# Check for zicfi* extensions needs cross compiler
9# which is not set until lib.mk is included
10ifeq ($(LLVM)$(CC),cc)
11CC := $(CROSS_COMPILE)gcc
12endif
13
14
15ifeq ($(shell $(CC) $(CFLAGS) -nostdlib -xc /dev/null -o /dev/null > /dev/null 2>&1; echo $$?),0)
16TEST_GEN_PROGS := cfitests
17
18$(OUTPUT)/cfitests: cfitests.c shadowstack.c
19	$(CC) -o$@ $(CFLAGS) $(LDFLAGS) $^
20else
21
22$(shell echo "Toolchain doesn't support CFI, skipping CFI kselftest." >&2)
23endif
24
25include ../../lib.mk
26