Re: super.c:undefined reference to `__umoddi3'

From: David Sterba
Date: Wed Jul 07 2021 - 09:50:20 EST


On Tue, Jul 06, 2021 at 07:54:13PM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 79160a603bdb51916226caf4a6616cc4e1c58a58
> commit: c49f71f60754acbff37505e1d16ca796bf8a8140 MIPS: Reinstate platform `__div64_32' handler

Is it caused by this patch? It seems to be only MIPS-related, otherwise
we'd get reports from other 32bit arches in case of the emulated 64bit
division.

> date: 3 months ago
> config: mips-randconfig-r036-20210706 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> 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
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c49f71f60754acbff37505e1d16ca796bf8a8140
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout c49f71f60754acbff37505e1d16ca796bf8a8140
> # save the attached .config to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=mips 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 >>):
>
> mipsel-linux-ld: fs/btrfs/super.o: in function `btrfs_statfs':
> super.c:(.text+0xed4): undefined reference to `__udivdi3'
> mipsel-linux-ld: super.c:(.text+0xf14): undefined reference to `__umoddi3'
> mipsel-linux-ld: super.c:(.text+0xf6c): undefined reference to `__udivdi3'

If you'd like to get that analyzed in the sources, please post the
snippet related to the binary address .text+0xf14 or .text+0xf6c .