forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4
kernel/arch/arm64/kernel/vdso/Makefile
....@@ -17,17 +17,21 @@
1717 targets := $(obj-vdso) vdso.so vdso.so.dbg
1818 obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
1919
20
-ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
21
- --build-id -n -T
22
-ccflags-y += $(DISABLE_LTO)
20
+btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
21
+
22
+# -Bsymbolic has been added for consistency with arm, the compat vDSO and
23
+# potential future proofing if we end up with internal calls to the exported
24
+# routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
25
+# preparation in build-time C")).
26
+ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
27
+ -Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id=sha1 -n \
28
+ $(btildflags-y) -T
2329
2430 ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
25
-ccflags-y += -DDISABLE_BRANCH_PROFILING
31
+ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
2632
27
-VDSO_LDFLAGS := -Bsymbolic
28
-
29
-CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS)
30
-KBUILD_CFLAGS += $(DISABLE_LTO)
33
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS) $(GCC_PLUGINS_CFLAGS) \
34
+ $(CC_FLAGS_LTO)
3135 KASAN_SANITIZE := n
3236 UBSAN_SANITIZE := n
3337 OBJECT_FILES_NON_STANDARD := y
....@@ -39,25 +43,18 @@
3943 CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
4044 endif
4145
42
-# Clang versions less than 8 do not support -mcmodel=tiny
43
-ifeq ($(CONFIG_CC_IS_CLANG), y)
44
- ifeq ($(shell test $(CONFIG_CLANG_VERSION) -lt 80000; echo $$?),0)
45
- CFLAGS_REMOVE_vgettimeofday.o += -mcmodel=tiny
46
- endif
47
-endif
48
-
4946 # Disable gcov profiling for VDSO code
5047 GCOV_PROFILE := n
5148
5249 obj-y += vdso.o
53
-extra-y += vdso.lds
50
+targets += vdso.lds
5451 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
5552
5653 # Force dependency (incbin is bad)
5754 $(obj)/vdso.o : $(obj)/vdso.so
5855
5956 # Link rule for the .so file, .lds has to be first
60
-$(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso)
57
+$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
6158 $(call if_changed,vdsold_and_vdso_check)
6259
6360 # Strip rule for the .so file
....@@ -68,17 +65,12 @@
6865 # Generate VDSO offsets using helper script
6966 gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh
7067 quiet_cmd_vdsosym = VDSOSYM $@
71
-define cmd_vdsosym
72
- $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
73
-endef
68
+ cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
7469
7570 include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
7671 $(call if_changed,vdsosym)
7772
7873 # Actual build commands
79
-quiet_cmd_vdsoas = VDSOA $@
80
- cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
81
-
8274 quiet_cmd_vdsold_and_vdso_check = LD $@
8375 cmd_vdsold_and_vdso_check = $(cmd_ld); $(cmd_vdso_check)
8476