Re: ld.lld: error: undefined symbol: socfpga_reset_init

From: Krzysztof Kozlowski
Date: Mon Feb 07 2022 - 02:57:37 EST


On 07/02/2022 01:51, Nathan Chancellor wrote:
> Hi Krzysztof,
>
> On Sun, Feb 06, 2022 at 12:55:57PM +0100, Krzysztof Kozlowski wrote:
>> On 04/02/2022 22:12, kernel test robot wrote:
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head: dcb85f85fa6f142aae1fe86f399d4503d49f2b60
>>> commit: 4483397b03536506535d611b0cb28a81a69e8edf ARM: socfpga: drop ARCH_SOCFPGA
>>> date: 11 months ago
>>> config: arm-socfpga_defconfig (https://download.01.org/0day-ci/archive/20220205/202202050539.Mtk9I4Ef-lkp@xxxxxxxxx/config)
>>> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a73e4ce6a59b01f0e37037761c1e6889d539d233)
>>> 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 arm cross compiling tool for clang build
>>> # apt-get install binutils-arm-linux-gnueabi
>>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4483397b03536506535d611b0cb28a81a69e8edf
>>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>> git fetch --no-tags linus master
>>> git checkout 4483397b03536506535d611b0cb28a81a69e8edf
>>> # save the config file to linux build tree
>>> mkdir build_dir
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash
>>>
>>> If you fix the issue, kindly add following tag as appropriate
>>> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>>>> ld.lld: error: undefined symbol: socfpga_reset_init
>>> >>> referenced by socfpga.c
>>> >>> socfpga.o:(socfpga_init_irq) in archive arch/arm/mach-socfpga/built-in.a
>>> >>> referenced by socfpga.c
>>> >>> socfpga.o:(socfpga_arria10_init_irq) in archive arch/arm/mach-socfpga/built-in.a
>>>
>>
>> This looks like a false positive. On the socfpga defconfig arm build,
>> the socfpga_reset_init() (drivers/reset/reset-socfpga.c) is built.
>>
>> I also could not reproduce it with GCC.
>
> I can reproduce this error with the configuration that the bot provides
> at both 4483397b03536506535d611b0cb28a81a69e8edf and v5.17-rc3, even
> with GCC:
>
> $ curl -LSso .config https://download.01.org/0day-ci/archive/20220205/202202050539.Mtk9I4Ef-lkp@xxxxxxxxx/config
>
> $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- olddefconfig all
> ...
> arm-linux-gnueabi-ld: arch/arm/mach-socfpga/socfpga.o: in function `socfpga_init_irq':
> socfpga.c:(.init.text+0x104): undefined reference to `socfpga_reset_init'
> ...
>
> Whether or not this reproduces with the in-tree socfpga_defconfig, I am
> not sure.

Thanks for checking - it seems I misread (and find it confusing...) the
report - that it is socfpga defconfig. It clearly says "config:
arm-socfpga_defconfig"...

I can reproduce it with the config from the URL. I'll work on fix.


Best regards,
Krzysztof