brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 05e4ee5 Raw
57 lines · plain
1# SPDX-License-Identifier: GPL-2.02 3TEST_GEN_PROGS := btitest nobtitest4 5# These tests are built as freestanding binaries since otherwise BTI6# support in ld.so is required which is not currently widespread; when7# it is available it will still be useful to test this separately as the8# cases for statically linked and dynamically lined binaries are9# slightly different.10 11CFLAGS_NOBTI = -mbranch-protection=none -DBTI=012CFLAGS_BTI = -mbranch-protection=standard -DBTI=113 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: %.c20	$(BTI_CC_COMMAND)21 22$(OUTPUT)/%-bti.o: %.S23	$(BTI_CC_COMMAND)24 25$(OUTPUT)/%-nobti.o: %.c26	$(NOBTI_CC_COMMAND)27 28$(OUTPUT)/%-nobti.o: %.S29	$(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.o39$(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.o50$(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 list54# to account for any OUTPUT target-dirs optionally provided by55# the toplevel makefile56include ../../lib.mk57