Clang emits calls to mcount for -pg on sparc64, while the
existing ftrace support only exports the _mcount name. With
FUNCTION_TRACER enabled, modules can therefore keep relocations
against mcount and fail during modpost:
ERROR: modpost: "mcount" [arch/sparc/kernel/chmc.ko] undefined!
_mcount and mcount are aliases in arch/sparc/lib/mcount.S. Export
the plain mcount alias as well so Clang-built modules can resolve
their profiling call target.
Assisted-by: Codex:GPT-5
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
typedef int TItype __attribute__((mode(TI)));
TItype __multi3(TItype a, TItype b);
void _mcount(void);
+void mcount(void);
s64 __ashldi3(s64, int);
s64 __lshrdi3(s64, int);
EXPORT_SYMBOL(_mcount)
.globl mcount
.type mcount,#function
+ EXPORT_SYMBOL(mcount)
_mcount:
mcount:
#ifdef CONFIG_FUNCTION_TRACER