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
2
11
3
12
obj-vdso64 = note.o sigtramp.o restart_syscall.o
13
+ obj-cvdso64 = vdso64_generic.o
4
14
5
15
# Build rules
6
16
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 ) )
9
20
21
+ VDSO_CFLAGS_REMOVE := -pg $(CC_FLAGS_FTRACE )
22
+ CFLAGS_REMOVE_vdso64_generic.o = $(VDSO_CFLAGS_REMOVE )
10
23
11
24
ccflags-y := -shared -fno-common -fno-builtin
12
25
ccflags-y += -nostdlib -Wl,-soname=linux-vdso64.so.1 \
@@ -26,18 +39,22 @@ $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so FORCE
26
39
27
40
# Force dependency (incbin is bad)
28
41
# 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
30
43
$(call if_changed,vdso64ld)
31
44
32
45
# assembly rules for the .S files
33
46
$(obj-vdso64 ) : % .o: % .S FORCE
34
47
$(call if_changed_dep,vdso64as)
48
+ $(obj-cvdso64 ) : % .o: % .c FORCE
49
+ $(call if_changed_dep,vdso64cc)
35
50
36
51
# actual build commands
37
52
quiet_cmd_vdso64ld = VDSO64L $@
38
53
cmd_vdso64ld = $(CC ) $(c_flags ) -Wl,-T $(filter-out FORCE, $^ ) -o $@
39
54
quiet_cmd_vdso64as = VDSO64A $@
40
55
cmd_vdso64as = $(CC ) $(a_flags ) -c -o $@ $<
56
+ quiet_cmd_vdso64cc = VDSO64C $@
57
+ cmd_vdso64cc = $(CC ) $(c_flags ) -c -o $@ $<
41
58
42
59
# Generate VDSO offsets using helper script
43
60
gen-vdsosym := $(src ) /gen_vdso_offsets.sh
0 commit comments