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

From: Randy Dunlap
Date: Mon Feb 07 2022 - 11:15:20 EST




On 2/6/22 23:55, Krzysztof Kozlowski wrote:
> 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"...

Aha, I did the same thing and could not reproduce it. :(

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

Thanks.

--
~Randy