1- # List of files in the vdso, has to be asm only for now
1+ # Include the generic Makefile to check the built vdso.
2+ include $(srctree ) /lib/vdso/Makefile
3+
4+ KCOV_INSTRUMENT := n
5+
6+ # Disable gcov profiling, ubsan and kasan for VDSO code
7+ GCOV_PROFILE := n
8+ UBSAN_SANITIZE := n
9+ KASAN_SANITIZE := n
10+ KCSAN_SANITIZE := n
211
312obj-vdso64 = note.o sigtramp.o restart_syscall.o
13+ obj-cvdso64 = vdso64_generic.o
414
515# Build rules
616
7- targets := $(obj-vdso64 ) vdso64.so
8- obj-vdso64 := $(addprefix $(obj ) /, $(obj-vdso64 ) )
17+ targets := $(obj-vdso64 ) $(obj-cvdso64 ) vdso64.so
18+ obj-vdso64 := $(addprefix $(obj ) /, $(obj-vdso64 ) )
19+ obj-cvdso64 := $(addprefix $(obj ) /, $(obj-cvdso64 ) )
920
21+ VDSO_CFLAGS_REMOVE := -pg $(CC_FLAGS_FTRACE )
22+ CFLAGS_REMOVE_vdso64_generic.o = $(VDSO_CFLAGS_REMOVE )
1023
1124ccflags-y := -shared -fno-common -fno-builtin
1225ccflags-y += -nostdlib -Wl,-soname=linux-vdso64.so.1 \
@@ -26,18 +39,22 @@ $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so FORCE
2639
2740# Force dependency (incbin is bad)
2841# link rule for the .so file, .lds has to be first
29- $(obj ) /vdso64.so : $(obj ) /vdso64.lds $(obj-vdso64 ) $(VDSO_LIBGCC ) FORCE
42+ $(obj ) /vdso64.so : $(obj ) /vdso64.lds $(obj-vdso64 ) $(obj-cvdso64 ) $( VDSO_LIBGCC ) FORCE
3043 $(call if_changed,vdso64ld)
3144
3245# assembly rules for the .S files
3346$(obj-vdso64 ) : % .o: % .S FORCE
3447 $(call if_changed_dep,vdso64as)
48+ $(obj-cvdso64 ) : % .o: % .c FORCE
49+ $(call if_changed_dep,vdso64cc)
3550
3651# actual build commands
3752quiet_cmd_vdso64ld = VDSO64L $@
3853 cmd_vdso64ld = $(CC ) $(c_flags ) -Wl,-T $(filter-out FORCE, $^ ) -o $@
3954quiet_cmd_vdso64as = VDSO64A $@
4055 cmd_vdso64as = $(CC ) $(a_flags ) -c -o $@ $<
56+ quiet_cmd_vdso64cc = VDSO64C $@
57+ cmd_vdso64cc = $(CC ) $(c_flags ) -c -o $@ $<
4158
4259# Generate VDSO offsets using helper script
4360gen-vdsosym := $(src ) /gen_vdso_offsets.sh
0 commit comments