1# SPDX-License-Identifier: GPL-2.0 2# List of files in the vdso, has to be asm only for now 3 4obj-vdso64 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o 5 6# Build rules 7 8targets := $(obj-vdso64) vdso64.so vdso64.so.dbg 9obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64)) 10 11GCOV_PROFILE := n 12KCOV_INSTRUMENT := n 13UBSAN_SANITIZE := n 14 15ccflags-y := -shared -fno-common -fno-builtin -nostdlib \ 16 -Wl,-soname=linux-vdso64.so.1 -Wl,--hash-style=both 17asflags-y := -D__VDSO64__ -s 18 19obj-y += vdso64_wrapper.o 20targets += vdso64.lds 21CPPFLAGS_vdso64.lds += -P -C -U$(ARCH) 22 23# Force dependency (incbin is bad) 24$(obj)/vdso64_wrapper.o : $(obj)/vdso64.so 25 26# link rule for the .so file, .lds has to be first 27$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) FORCE 28 $(call if_changed,vdso64ld) 29 30# strip rule for the .so file 31$(obj)/%.so: OBJCOPYFLAGS := -S 32$(obj)/%.so: $(obj)/%.so.dbg FORCE 33 $(call if_changed,objcopy) 34 35# actual build commands 36quiet_cmd_vdso64ld = VDSO64L $@ 37 cmd_vdso64ld = $(CC) $(c_flags) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) 38 39# install commands for the unstripped file 40quiet_cmd_vdso_install = INSTALL $@ 41 cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@ 42 43vdso64.so: $(obj)/vdso64.so.dbg 44 @mkdir -p $(MODLIB)/vdso 45 $(call cmd,vdso_install) 46 47vdso_install: vdso64.so 48