All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Fix CONFIG_FUNCTION_TRACER with clang
@ 2021-03-25 22:38 ` Nathan Chancellor
  0 siblings, 0 replies; 22+ messages in thread
From: Nathan Chancellor @ 2021-03-25 22:38 UTC (permalink / raw)
  To: Palmer Dabbelt, Paul Walmsley, Albert Ou
  Cc: linux-riscv, linux-kernel, clang-built-linux, Nathan Chancellor

Hi all,

This series fixes function tracing with clang.

Patch 1 adjusts the mcount regex in scripts/recordmcount.pl to handle
the presence of PLT relocations, which happen with clang. Without this,
the mcount_loc section will not be created properly.

Patch 2 adds a workaround for clang less than 13.0.0 in relation to the
mcount symbol name, which was "mcount" rather than "_mcount". This was
written as a separate patch so that it can be reverted when the minimum
clang version is bumped to clang 13.0.0.

Patch 3 avoids a build error when -fpatchable-function-entry is not
available, which is the case with clang less than 13.0.0. This will make
dynamic ftrace unavailable but all of the other function tracing should
work due to the prescence of the previous patch.

I am hoping this series can go in as fixes for 5.12, due to patch 3, but
if not, they can always be backported (patches 1 and 2 are already
marked for stable).

This series has been build tested with gcc-8 through gcc-10 and clang-11
through clang-13 with defconfig and nommu_virt_defconfig plus
CONFIG_FTRACE=y and CONFIG_FUNCTION_TRACER=y then boot tested under
QEMU.

Cheers,
Nathan

Nathan Chancellor (3):
  scripts/recordmcount.pl: Fix RISC-V regex for clang
  riscv: Workaround mcount name prior to clang-13
  riscv: Select HAVE_DYNAMIC_FTRACE when -fpatchable-function-entry is
    available

 arch/riscv/Kconfig              |  2 +-
 arch/riscv/include/asm/ftrace.h | 14 ++++++++++++--
 arch/riscv/kernel/mcount.S      | 10 +++++-----
 scripts/recordmcount.pl         |  2 +-
 4 files changed, 19 insertions(+), 9 deletions(-)

-- 
2.31.0


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-04-11 21:28 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-25 22:38 [PATCH 0/3] Fix CONFIG_FUNCTION_TRACER with clang Nathan Chancellor
2021-03-25 22:38 ` Nathan Chancellor
2021-03-25 22:38 ` [PATCH 1/3] scripts/recordmcount.pl: Fix RISC-V regex for clang Nathan Chancellor
2021-03-25 22:38   ` Nathan Chancellor
2021-03-25 23:36   ` Fangrui Song
2021-03-25 23:36     ` Fangrui Song
2021-03-25 22:38 ` [PATCH 2/3] riscv: Workaround mcount name prior to clang-13 Nathan Chancellor
2021-03-25 22:38   ` Nathan Chancellor
2021-03-29 18:32   ` Nick Desaulniers
2021-03-29 18:32     ` Nick Desaulniers
2021-03-25 22:38 ` [PATCH 3/3] riscv: Select HAVE_DYNAMIC_FTRACE when -fpatchable-function-entry is available Nathan Chancellor
2021-03-25 22:38   ` Nathan Chancellor
2021-03-25 23:38   ` Fangrui Song
2021-03-25 23:38     ` Fangrui Song
2021-03-26  8:37 ` [PATCH 0/3] Fix CONFIG_FUNCTION_TRACER with clang Sedat Dilek
2021-03-26  8:37   ` Sedat Dilek
2021-03-26 13:07   ` Nathan Chancellor
2021-03-26 13:07     ` Nathan Chancellor
2021-03-27 12:16     ` Sedat Dilek
2021-03-27 12:16       ` Sedat Dilek
2021-04-11 21:27 ` Palmer Dabbelt
2021-04-11 21:27   ` Palmer Dabbelt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.