All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikhail Zhilkin <csharper2005@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
	Nathan Chancellor <nathan@kernel.org>
Cc: kernel test robot <lkp@intel.com>,
	llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	 linux-kernel@vger.kernel.org,
	NOGUCHI Hiroshi <drvlabo@gmail.com>
Subject: Re: ld.lld: error: undefined symbol: __udivdi3
Date: Thu, 1 Dec 2022 21:39:22 +0300	[thread overview]
Message-ID: <CAC2txAZpGooRGSxh4x9T7Y9b4OvfePx5=YuJoyaSwk1M_EvwtQ@mail.gmail.com> (raw)
In-Reply-To: <20221201171331.42f05097@xps-13>

Hi Miquèl, Nathan,

On 12/1/2022 7:13 PM, Miquel Raynal wrote:
> Hi Nathan,
>
> nathan@kernel.org wrote on Thu, 1 Dec 2022 09:00:57 -0700:
>
>> On Thu, Dec 01, 2022 at 09:16:10AM +0100, Miquel Raynal wrote:
>>> Hi Mikhail, Hiroshi,
>>>
>>> lkp@intel.com wrote on Thu, 1 Dec 2022 01:46:36 +0800:
>>>
>>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>>> head:   01f856ae6d0ca5ad0505b79bf2d22d7ca439b2a1
>>>> commit: 9b78ef0c7997052e9eaa0f7a4513d546fa17358c mtd: parsers: add support for Sercomm partitions
>>>> date:   6 months ago
>>>> config: mips-randconfig-r033-20221128
>>>> compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 6e4cea55f0d1104408b26ac574566a0e4de48036)
>>>> 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/torvalds/linux.git/commit/?id=9b78ef0c7997052e9eaa0f7a4513d546fa17358c
>>>>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>>         git fetch --no-tags linus master
>>>>         git checkout 9b78ef0c7997052e9eaa0f7a4513d546fa17358c
>>>>         # 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@intel.com>
>>>>
>>>> All errors (new ones prefixed by >>):
>>>>
>>>>>> ld.lld: error: undefined symbol: __udivdi3
>>>>    >>> referenced by scpart.c
>>>>    >>>               mtd/parsers/scpart.o:(scpart_parse) in archive drivers/built-in.a
>>>>
>>> Can you please try to reproduce this with a mips toolchain as advised
>>> and send a fix?
>> For what it's worth, this is likely our bug:
>>
>> https://github.com/ClangBuiltLinux/linux/issues/1635
>>
>> It sounds like there are some merged LLVM patches that should help but I
>> guess not based on this report...
> Ah, yeah, thanks a lot for the share.
>
> Cheers, Miquèl

I could reproduce the issue and found that reference to __udivdi3
appears in this function:

static uint32_t scpart_desc_is_valid(struct sc_part_desc *pdesc)
{
        return ((pdesc->part_id != 0xffffffffUL) &&
                (pdesc->part_offs != 0xffffffffUL) &&
                (pdesc->part_bytes != 0xffffffffUL));
}

There is no LLVM compiler error if:

static uint32_t scpart_desc_is_valid(struct sc_part_desc *pdesc)
{
        return (0);
}

Currently I have no ideas where does __udivdi3 come from, because
there's no division here. Should I try to rewrite somehow the function
to avoid the error?
I would greatly appreciate any ideas.

--
Best regards,
Mikhail

  reply	other threads:[~2022-12-01 18:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-30 17:46 ld.lld: error: undefined symbol: __udivdi3 kernel test robot
2022-12-01  8:16 ` Miquel Raynal
2022-12-01 16:00   ` Nathan Chancellor
2022-12-01 16:13     ` Miquel Raynal
2022-12-01 18:39       ` Mikhail Zhilkin [this message]
2022-12-06 17:03         ` Nathan Chancellor
2022-12-07 18:32           ` Mikhail Zhilkin
2022-12-07 18:36             ` Nathan Chancellor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC2txAZpGooRGSxh4x9T7Y9b4OvfePx5=YuJoyaSwk1M_EvwtQ@mail.gmail.com' \
    --to=csharper2005@gmail.com \
    --cc=drvlabo@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --cc=miquel.raynal@bootlin.com \
    --cc=nathan@kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.