Re: [PATCHv2] sparc: Export mcount for Clang-built modules

Andreas Larsson <[email protected]> Mon, 15 Jun 2026 10:01:02 +0200
Newsgroups org.kernel.vger.sparclinux,dev.linux.lists.llvm,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 2026-06-12 20:15, Rosen Penev wrote:
> 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 <[email protected]>
> ---
>  v2: add declaration in asm-prototypes.h
>  arch/sparc/include/asm/asm-prototypes.h | 1 +
>  arch/sparc/lib/mcount.S                 | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/arch/sparc/include/asm/asm-prototypes.h b/arch/sparc/include/asm/asm-prototypes.h
> index 270c51017212..a39a24c53216 100644
> --- a/arch/sparc/include/asm/asm-prototypes.h
> +++ b/arch/sparc/include/asm/asm-prototypes.h
> @@ -26,6 +26,7 @@ void *memset(void *s, int c, size_t n);
>  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);
> diff --git a/arch/sparc/lib/mcount.S b/arch/sparc/lib/mcount.S
> index f7f7910eb41e..0309ba2c4712 100644
> --- a/arch/sparc/lib/mcount.S
> +++ b/arch/sparc/lib/mcount.S
> @@ -21,6 +21,7 @@
>  	EXPORT_SYMBOL(_mcount)
>  	.globl		mcount
>  	.type		mcount,#function
> +	EXPORT_SYMBOL(mcount)
>  _mcount:
>  mcount:
>  #ifdef CONFIG_FUNCTION_TRACER
> --
> 2.54.0
> 

Reviewed-by: Andreas Larsson <[email protected]>

Picking this up to my for-next.

Thanks,
Andreas