summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2019-02-10 01:51:00 -0500
committerMasahiro Yamada <yamada.masahiro@socionext.com>2019-02-19 19:39:39 -0500
commit1e88e415ebccb9013b92b55e7512938040c53b61 (patch)
tree2feec65be107f251a4dd6c6563939cac85b62a63
parent500193ec57fddf5e52d64fd7278b37a6afc9f773 (diff)
kbuild: Disable extra debugging info in .s output
Modern gcc adds view assignments, reset assertion checking in .loc directives and a couple more additional debug markers, which clutters the asm output unnecessarily: For example: bsp_resume: .LFB3466: .loc 1 1868 1 is_stmt 1 view -0 .cfi_startproc .loc 1 1869 2 view .LVU73 # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) .loc 1 1869 14 is_stmt 0 view .LVU74 movq this_cpu(%rip), %rax # this_cpu, this_cpu movq 64(%rax), %rax # this_cpu.94_1->c_bsp_resume, _2 # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) .loc 1 1869 5 view .LVU75 testq %rax, %rax # _2 je .L8 #, .loc 1 1870 3 is_stmt 1 view .LVU76 movq $boot_cpu_data, %rdi #, jmp __x86_indirect_thunk_rax or .loc 2 57 9 view .LVU478 .loc 2 57 9 view .LVU479 .loc 2 57 9 view .LVU480 .loc 2 57 9 view .LVU481 .LBB1385: .LBB1383: .LBB1379: .LBB1377: .LBB1375: .loc 2 57 9 view .LVU482 .loc 2 57 9 view .LVU483 movl %edi, %edx # cpu, cpu .LVL87: .loc 2 57 9 is_stmt 0 view .LVU484 That MOV in there is drowned in debugging information and latter makes it hard to follow the asm. And that DWARF info is not really needed for asm output staring. Disable the debug information generation which clutters the asm output unnecessarily: bsp_resume: # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) movq this_cpu(%rip), %rax # this_cpu, this_cpu movq 64(%rax), %rax # this_cpu.94_1->c_bsp_resume, _2 # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) testq %rax, %rax # _2 je .L8 #, # arch/x86/kernel/cpu/common.c:1870: this_cpu->c_bsp_resume(&boot_cpu_data); movq $boot_cpu_data, %rdi #, jmp __x86_indirect_thunk_rax .L8: # arch/x86/kernel/cpu/common.c:1871: } rep ret .size bsp_resume, .-bsp_resume [ bp: write commit message. ] Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Borislav Petkov <bp@suse.de>
-rw-r--r--Makefile13
-rw-r--r--scripts/Makefile.build2
2 files changed, 9 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index d487fca342c4..681bed05d104 100644
--- a/Makefile
+++ b/Makefile
@@ -732,25 +732,28 @@ KBUILD_CFLAGS += -fomit-frame-pointer
732endif 732endif
733endif 733endif
734 734
735KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments) 735DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
736 736
737ifdef CONFIG_DEBUG_INFO 737ifdef CONFIG_DEBUG_INFO
738ifdef CONFIG_DEBUG_INFO_SPLIT 738ifdef CONFIG_DEBUG_INFO_SPLIT
739KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g) 739DEBUG_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
740else 740else
741KBUILD_CFLAGS += -g 741DEBUG_CFLAGS += -g
742endif 742endif
743KBUILD_AFLAGS += -Wa,-gdwarf-2 743KBUILD_AFLAGS += -Wa,-gdwarf-2
744endif 744endif
745ifdef CONFIG_DEBUG_INFO_DWARF4 745ifdef CONFIG_DEBUG_INFO_DWARF4
746KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,) 746DEBUG_CFLAGS += $(call cc-option, -gdwarf-4,)
747endif 747endif
748 748
749ifdef CONFIG_DEBUG_INFO_REDUCED 749ifdef CONFIG_DEBUG_INFO_REDUCED
750KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ 750DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \
751 $(call cc-option,-fno-var-tracking) 751 $(call cc-option,-fno-var-tracking)
752endif 752endif
753 753
754KBUILD_CFLAGS += $(DEBUG_CFLAGS)
755export DEBUG_CFLAGS
756
754ifdef CONFIG_FUNCTION_TRACER 757ifdef CONFIG_FUNCTION_TRACER
755ifdef CONFIG_FTRACE_MCOUNT_RECORD 758ifdef CONFIG_FTRACE_MCOUNT_RECORD
756 # gcc 5 supports generating the mcount tables directly 759 # gcc 5 supports generating the mcount tables directly
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index f8e2794107ed..0a9d849d0fab 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -104,7 +104,7 @@ modkern_cflags = \
104quiet_modtag = $(if $(part-of-module),[M], ) 104quiet_modtag = $(if $(part-of-module),[M], )
105 105
106quiet_cmd_cc_s_c = CC $(quiet_modtag) $@ 106quiet_cmd_cc_s_c = CC $(quiet_modtag) $@
107cmd_cc_s_c = $(CC) $(c_flags) $(DISABLE_LTO) -fverbose-asm -S -o $@ $< 107 cmd_cc_s_c = $(CC) $(filter-out $(DEBUG_CFLAGS), $(c_flags)) $(DISABLE_LTO) -fverbose-asm -S -o $@ $<
108 108
109$(obj)/%.s: $(src)/%.c FORCE 109$(obj)/%.s: $(src)/%.c FORCE
110 $(call if_changed_dep,cc_s_c) 110 $(call if_changed_dep,cc_s_c)