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 (2378B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2# Copied from arch/tile/kernel/vdso/Makefile
      3
      4# Absolute relocation type $(ARCH_REL_TYPE_ABS) needs to be defined before
      5# the inclusion of generic Makefile.
      6ARCH_REL_TYPE_ABS := R_RISCV_32|R_RISCV_64|R_RISCV_JUMP_SLOT
      7include $(srctree)/lib/vdso/Makefile
      8# Symbols present in the vdso
      9vdso-syms  = rt_sigreturn
     10ifdef CONFIG_64BIT
     11vdso-syms += vgettimeofday
     12endif
     13vdso-syms += getcpu
     14vdso-syms += flush_icache
     15
     16# Files to link into the vdso
     17obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
     18
     19ccflags-y := -fno-stack-protector
     20
     21ifneq ($(c-gettimeofday-y),)
     22  CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
     23endif
     24
     25# Build rules
     26targets := $(obj-vdso) vdso.so vdso.so.dbg vdso.lds
     27obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
     28
     29obj-y += vdso.o
     30CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
     31
     32# Disable -pg to prevent insert call site
     33CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
     34
     35# Disable profiling and instrumentation for VDSO code
     36GCOV_PROFILE := n
     37KCOV_INSTRUMENT := n
     38KASAN_SANITIZE := n
     39UBSAN_SANITIZE := n
     40
     41# Force dependency
     42$(obj)/vdso.o: $(obj)/vdso.so
     43
     44# link rule for the .so file, .lds has to be first
     45$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
     46	$(call if_changed,vdsold)
     47LDFLAGS_vdso.so.dbg = -shared -S -soname=linux-vdso.so.1 \
     48	--build-id=sha1 --hash-style=both --eh-frame-hdr
     49
     50# strip rule for the .so file
     51$(obj)/%.so: OBJCOPYFLAGS := -S
     52$(obj)/%.so: $(obj)/%.so.dbg FORCE
     53	$(call if_changed,objcopy)
     54
     55# Generate VDSO offsets using helper script
     56gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh
     57quiet_cmd_vdsosym = VDSOSYM $@
     58	cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
     59
     60include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
     61	$(call if_changed,vdsosym)
     62
     63# actual build commands
     64# The DSO images are built using a special linker script
     65# Make sure only to export the intended __vdso_xxx symbol offsets.
     66quiet_cmd_vdsold = VDSOLD  $@
     67      cmd_vdsold = $(LD) $(ld_flags) -T $(filter-out FORCE,$^) -o $@.tmp && \
     68                   $(OBJCOPY) $(patsubst %, -G __vdso_%, $(vdso-syms)) $@.tmp $@ && \
     69                   rm $@.tmp
     70
     71# install commands for the unstripped file
     72quiet_cmd_vdso_install = INSTALL $@
     73      cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@
     74
     75vdso.so: $(obj)/vdso.so.dbg
     76	@mkdir -p $(MODLIB)/vdso
     77	$(call cmd,vdso_install)
     78
     79vdso_install: vdso.so