[peterz-queue:sched/maybe 1/14] ERROR: modpost: vmlinux: local symbol '__put_task_struct_rcu_cb' was exported

Nathan Chancellor nathan at kernel.org
Mon Jul 10 11:56:57 PDT 2023


On Mon, Jul 10, 2023 at 08:26:05PM +0200, Peter Zijlstra wrote:
> On Tue, Jul 11, 2023 at 01:48:23AM +0800, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/maybe
> > head:   69ff1e365682e2d516364c010b51f8a95140cd94
> > commit: eb15cb094ddb0227c9dfe5eb836d1a4357f070fd [1/14] kernel/fork: beware of __put_task_struct calling context
> > config: riscv-randconfig-r042-20230710 (https://download.01.org/0day-ci/archive/20230711/202307110147.tDoRemZ7-lkp@intel.com/config)
> > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> > reproduce: (https://download.01.org/0day-ci/archive/20230711/202307110147.tDoRemZ7-lkp@intel.com/reproduce)
> > 
> 
> > >> ERROR: modpost: vmlinux: local symbol '__put_task_struct_rcu_cb' was exported
> 
> The commit above introduces this function:
> 
> +void __put_task_struct_rcu_cb(struct rcu_head *rhp)
> +{
> +       struct task_struct *task = container_of(rhp, struct task_struct, rcu);
> +
> +       __put_task_struct(task);
> +}
> +EXPORT_SYMBOL_GPL(__put_task_struct_rcu_cb);
> 
> How the heck does that become a local symbol?
> 

Looking at the configuration:

CONFIG_32BIT=y
CONFIG_ARCH_RV32I=y

It is highly likely that something is broken with 32-bit RISC-V and
clang, as that is not something we have ever tested. I don't even think
32-bit RISC-V is tested that much even with GCC, so I'm not sure if this
is even worth looking into.

Cheers,
Nathan



More information about the linux-riscv mailing list