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

From: Krzysztof Kozlowski
Date: Mon Feb 07 2022 - 11:16:52 EST


On 07/02/2022 17:06, Randy Dunlap wrote:
>
>
> 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.

FYI, patch sent:
https://lore.kernel.org/linux-arm-kernel/20220207084404.212017-1-krzysztof.kozlowski@xxxxxxxxxxxxx/


Best regards,
Krzysztof