File Index
Files and directories
Sign in
FILE

Makefile

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/arm64/bti/Makefile MAKEFILE
 1# SPDX-License-Identifier: GPL-2.0
 2
 3TEST_GEN_PROGS := btitest nobtitest
 4
 5# These tests are built as freestanding binaries since otherwise BTI
 6# support in ld.so is required which is not currently widespread; when
 7# it is available it will still be useful to test this separately as the
 8# cases for statically linked and dynamically lined binaries are
 9# slightly different.
10
11CFLAGS_NOBTI = -mbranch-protection=none -DBTI=0
12CFLAGS_BTI = -mbranch-protection=standard -DBTI=1
13
14CFLAGS_COMMON = -ffreestanding -Wall -Wextra $(CFLAGS)
15
16BTI_CC_COMMAND = $(CC) $(CFLAGS_BTI) $(CFLAGS_COMMON) -c -o $@ $<
17NOBTI_CC_COMMAND = $(CC) $(CFLAGS_NOBTI) $(CFLAGS_COMMON) -c -o $@ $<
18
19$(OUTPUT)/%-bti.o: %.c
20	$(BTI_CC_COMMAND)
21
22$(OUTPUT)/%-bti.o: %.S
23	$(BTI_CC_COMMAND)
24
25$(OUTPUT)/%-nobti.o: %.c
26	$(NOBTI_CC_COMMAND)
27
28$(OUTPUT)/%-nobti.o: %.S
29	$(NOBTI_CC_COMMAND)
30
31BTI_OBJS =                                      \
32	$(OUTPUT)/test-bti.o                    \
33	$(OUTPUT)/signal-bti.o                  \
34	$(OUTPUT)/start-bti.o                   \
35	$(OUTPUT)/syscall-bti.o                 \
36	$(OUTPUT)/system-bti.o                  \
37	$(OUTPUT)/teststubs-bti.o               \
38	$(OUTPUT)/trampoline-bti.o
39$(OUTPUT)/btitest: $(BTI_OBJS)
40	$(CC) $(CFLAGS_BTI) $(CFLAGS_COMMON) -nostdlib -static -o $@ $^
41
42NOBTI_OBJS =                                    \
43	$(OUTPUT)/test-nobti.o                  \
44	$(OUTPUT)/signal-nobti.o                \
45	$(OUTPUT)/start-nobti.o                 \
46	$(OUTPUT)/syscall-nobti.o               \
47	$(OUTPUT)/system-nobti.o                \
48	$(OUTPUT)/teststubs-nobti.o             \
49	$(OUTPUT)/trampoline-nobti.o
50$(OUTPUT)/nobtitest: $(NOBTI_OBJS)
51	$(CC) $(CFLAGS_BTI) $(CFLAGS_COMMON) -nostdlib -static -o $@ $^
52
53# Including KSFT lib.mk here will also mangle the TEST_GEN_PROGS list
54# to account for any OUTPUT target-dirs optionally provided by
55# the toplevel makefile
56include ../../lib.mk
~/ Read-only file preview.