cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Makefile (1919B)


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