Re: [peterz-queue:locking/core 2/4] ld.lld: error: undefined symbol: jump_label_apply_nops

From: Peter Zijlstra
Date: Mon Jun 20 2022 - 03:27:15 EST


On Sat, Jun 18, 2022 at 10:10:23AM +0200, Ard Biesheuvel wrote:
> On Fri, 17 Jun 2022 at 23:54, kernel test robot <lkp@xxxxxxxxx> wrote:
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/core
> > head: c4e2db802ebbc639960404b97c9b8a6284634428
> > commit: 74c632a2a5738bd18864610e34f6b6d2db664bb7 [2/4] jump_label: mips: move module NOP patching into arch code
> > config: mips-randconfig-r026-20220617 (https://download.01.org/0day-ci/archive/20220618/202206180532.mOqwM8Wu-lkp@xxxxxxxxx/config)
> > compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d764aa7fc6b9cc3fbe960019018f5f9e941eb0a6)
> > reproduce (this is a W=1 build):
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # install mips cross compiling tool for clang build
> > # apt-get install binutils-mipsel-linux-gnu
> > # https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=74c632a2a5738bd18864610e34f6b6d2db664bb7
> > git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
> > git fetch --no-tags peterz-queue locking/core
> > git checkout 74c632a2a5738bd18864610e34f6b6d2db664bb7
> > # save the config file
> > mkdir build_dir && cp config build_dir/.config
> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash
> >
> > If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >
> > All errors (new ones prefixed by >>):
> >
> > >> ld.lld: error: undefined symbol: jump_label_apply_nops
> > >>> referenced by module.c
> > >>> kernel/module.o:(module_finalize) in archive arch/mips/built-in.a
> >
>
> Aargh.
>
> --- a/arch/mips/kernel/jump_label.c
> +++ b/arch/mips/kernel/jump_label.c
> @@ -89,7 +89,7 @@ void arch_jump_label_transform(struct jump_entry *e,
> mutex_unlock(&text_mutex);
> }
>
> -#ifdef CONFIG_MODULE
> +#ifdef CONFIG_MODULES
> void jump_label_apply_nops(struct module *mod)
> {
> struct jump_entry *iter_start = mod->jump_entries;
>
> Sorry about that.

Heh, no worries, that's what we have the robot for ;-)