diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.build | 17 |
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 | ||
| 261 | objtool_args = check | 261 | objtool_args = $(if $(CONFIG_ORC_UNWINDER),orc generate,check) |
| 262 | |||
| 262 | ifndef CONFIG_FRAME_POINTER | 263 | ifndef CONFIG_FRAME_POINTER |
| 263 | objtool_args += --no-fp | 264 | objtool_args += --no-fp |
| 264 | endif | 265 | endif |
| 266 | ifdef CONFIG_GCOV_KERNEL | ||
| 267 | objtool_args += --no-unreachable | ||
| 268 | endif | ||
| 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%,, \ | |||
| 276 | endif # SKIP_STACK_VALIDATION | 280 | endif # SKIP_STACK_VALIDATION |
| 277 | endif # CONFIG_STACK_VALIDATION | 281 | endif # CONFIG_STACK_VALIDATION |
| 278 | 282 | ||
| 283 | # Rebuild all objects when objtool changes, or is enabled/disabled. | ||
| 284 | objtool_dep = $(objtool_obj) \ | ||
| 285 | $(wildcard include/config/orc/unwinder.h \ | ||
| 286 | include/config/stack/validation.h) | ||
| 287 | |||
| 279 | define rule_cc_o_c | 288 | define 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 | |||
| 298 | endif | 307 | endif |
| 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 = \ | |||
| 399 | endif | 408 | endif |
| 400 | endif | 409 | endif |
| 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 | ||
| 405 | targets += $(real-objs-y) $(real-objs-m) $(lib-y) | 414 | targets += $(real-objs-y) $(real-objs-m) $(lib-y) |
