Messages in this thread | | | Date | Fri, 07 Jan 2022 17:31:52 +0000 | From | Paul Cercueil <> | Subject | Re: decompress.c:(.text.FSE_buildDTable_internal+0x2cc): undefined reference to `__clzdi2' |
| |
Hi Nick,
Le mer., janv. 5 2022 at 20:18:27 +0000, Nick Terrell <terrelln@fb.com> a écrit : > > >> On Jan 5, 2022, at 11:02 AM, kernel test robot <lkp@intel.com> >> wrote: >> >> tree: >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> master >> head: c9e6606c7fe92b50a02ce51dda82586ebdf99b48 >> commit: e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 lib: zstd: Upgrade >> to latest upstream zstd version 1.4.10 >> date: 8 weeks ago >> config: mips-randconfig-r025-20220105 >> (https://download.01.org/0day-ci/archive/20220106/202201060233.mO6P39bM-lkp@intel.com/config >> ) >> compiler: mips64el-linux-gcc (GCC) 11.2.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=e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 >> git remote add linus >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> git fetch --no-tags linus master >> git checkout e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 >> # save the config file to linux build tree >> mkdir build_dir >> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.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@intel.com> >> >> All errors (new ones prefixed by >>): >> >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `FSE_buildDTable_internal': >>>> decompress.c:(.text.FSE_buildDTable_internal+0x2cc): undefined >>>> reference to `__clzdi2' >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `BIT_initDStream': >> decompress.c:(.text.BIT_initDStream+0x7c): undefined reference to >> `__clzdi2' >> mips64el-linux-ld: decompress.c:(.text.BIT_initDStream+0x158): >> undefined reference to `__clzdi2' >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `ZSTD_buildFSETable_body_default.constprop.0': >>>> >>>> decompress.c:(.text.ZSTD_buildFSETable_body_default.constprop.0+0x2a8): >>>> undefined reference to `__clzdi2' >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `FSE_readNCount_body_default': >>>> decompress.c:(.text.FSE_readNCount_body_default+0x130): undefined >>>> reference to `__ctzdi2' >>>> mips64el-linux-ld: >>>> decompress.c:(.text.FSE_readNCount_body_default+0x1a4): undefined >>>> reference to `__ctzdi2' >>>> mips64el-linux-ld: >>>> decompress.c:(.text.FSE_readNCount_body_default+0x2e4): undefined >>>> reference to `__clzdi2' >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `HUF_readStats_body_default': >>>> decompress.c:(.text.HUF_readStats_body_default+0x184): undefined >>>> reference to `__clzdi2' >>>> mips64el-linux-ld: >>>> decompress.c:(.text.HUF_readStats_body_default+0x1b4): undefined >>>> reference to `__clzdi2' >> mips64el-linux-ld: arch/mips/boot/compressed/decompress.o: in >> function `ZSTD_DCtx_getParameter': >>>> decompress.c:(.text.ZSTD_DCtx_getParameter+0x60): undefined >>>> reference to `__clzdi2' > > These are complaining about usage of __builtin_c{l,t}z(). The code > before this change also used > __builtin_clz(), so this isn't new. E.g. the call in > BIT_initDStream() is present before the change, > it just moved locations. So these errors aren't new. > > This is breaking the MIPS boot code when zstd compressed kernels are > enabled, and was > Introduced in commit a510b61613 [0][1]. The fix is to include the > definitions from `lib/clz_ctz.c` [2]. > The same problem was fixed for s390 in this patch [3]. > > CC: Paul Cercueil
Thanks, I'll send a patch.
Cheers, -Paul
| |