aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.build17
1 files changed, 13 insertions, 4 deletions
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index f6152c70f7f4..2e3a10e79ca9 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -258,10 +258,14 @@ ifneq ($(SKIP_STACK_VALIDATION),1)
258 258
259__objtool_obj := $(objtree)/tools/objtool/objtool 259__objtool_obj := $(objtree)/tools/objtool/objtool
260 260
261objtool_args = check 261objtool_args = $(if $(CONFIG_ORC_UNWINDER),orc generate,check)
262
262ifndef CONFIG_FRAME_POINTER 263ifndef CONFIG_FRAME_POINTER
263objtool_args += --no-fp 264objtool_args += --no-fp
264endif 265endif
266ifdef CONFIG_GCOV_KERNEL
267objtool_args += --no-unreachable
268endif
265 269
266# 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory 270# 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory
267# 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file 271# 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file
@@ -276,6 +280,11 @@ objtool_obj = $(if $(patsubst y%,, \
276endif # SKIP_STACK_VALIDATION 280endif # SKIP_STACK_VALIDATION
277endif # CONFIG_STACK_VALIDATION 281endif # CONFIG_STACK_VALIDATION
278 282
283# Rebuild all objects when objtool changes, or is enabled/disabled.
284objtool_dep = $(objtool_obj) \
285 $(wildcard include/config/orc/unwinder.h \
286 include/config/stack/validation.h)
287
279define rule_cc_o_c 288define rule_cc_o_c
280 $(call echo-cmd,checksrc) $(cmd_checksrc) \ 289 $(call echo-cmd,checksrc) $(cmd_checksrc) \
281 $(call cmd_and_fixdep,cc_o_c) \ 290 $(call cmd_and_fixdep,cc_o_c) \
@@ -298,13 +307,13 @@ cmd_undef_syms = echo
298endif 307endif
299 308
300# Built-in and composite module parts 309# Built-in and composite module parts
301$(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_obj) FORCE 310$(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
302 $(call cmd,force_checksrc) 311 $(call cmd,force_checksrc)
303 $(call if_changed_rule,cc_o_c) 312 $(call if_changed_rule,cc_o_c)
304 313
305# Single-part modules are special since we need to mark them in $(MODVERDIR) 314# Single-part modules are special since we need to mark them in $(MODVERDIR)
306 315
307$(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_obj) FORCE 316$(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
308 $(call cmd,force_checksrc) 317 $(call cmd,force_checksrc)
309 $(call if_changed_rule,cc_o_c) 318 $(call if_changed_rule,cc_o_c)
310 @{ echo $(@:.o=.ko); echo $@; \ 319 @{ echo $(@:.o=.ko); echo $@; \
@@ -399,7 +408,7 @@ cmd_modversions_S = \
399endif 408endif
400endif 409endif
401 410
402$(obj)/%.o: $(src)/%.S $(objtool_obj) FORCE 411$(obj)/%.o: $(src)/%.S $(objtool_dep) FORCE
403 $(call if_changed_rule,as_o_S) 412 $(call if_changed_rule,as_o_S)
404 413
405targets += $(real-objs-y) $(real-objs-m) $(lib-y) 414targets += $(real-objs-y) $(real-objs-m) $(lib-y)