Skip to content
  • Wu Zhangjin's avatar
    ftrace: Speed up recordmcount · 45677454
    Wu Zhangjin authored
    
    
    cmd_record_mcount is used to locate the _mcount symbols in the object
    files, only the files compiled with -pg has the _mcount symbol, so, it
    is only needed for such files, but the current cmd_record_mcount is used
    for all of the object files, so, we need to fix it and speed it up.
    
    Since -pg may be removed by the method used in kernel/trace/Makefile:
    
    ORIG_CFLAGS := $(KBUILD_CFLAGS)
    KBUILD_CFLAGS = $(subst -pg,,$(ORIG_CFLAGS))
    
    Or may be removed by the method used in arch/x86/kernel/Makefile:
    
    CFLAGS_REMOVE_file.o = -pg
    
    So, we must check the last variable stores the compiling flags, that is
    c_flags(Please refer to cmd_cc_o_c and rule_cc_o_c defined in
    scripts/Makefile.build) and since the CFLAGS_REMOVE_file.o is already
    filtered in _c_flags(Please refer to scripts/Makefile.lib) and _c_flags
    has less symbols, therefore, we only need to check _c_flags.
    
    ---------------
    Changes from v1:
    
      o Don't touch Makefile for CONFIG_FTRACE_MCOUNT_RECORD is enough
      o Use _c_flags intead of KBUILD_CFLAGS to cover CONFIG_REMOVE_file.o = -pg
      (feedback from Steven Rostedt <rostedt@goodmis.org>)
    
    Acked-by: default avatarMichal Marek <mmarek@suse.cz>
    Signed-off-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
    LKML-Reference: <3dc8cddf022eb7024f9f2cf857529a15bee8999a.1288196498.git.wuzhangjin@gmail.com>
    
    [ changed if [ .. == .. ] to if [ .. = .. ] to handle dash environments ]
    
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    45677454