Hi Nick,
Le mer., janv. 5 2022 at 20:18:27 +0000, Nick Terrell <terrelln@xxxxxx>
a écrit :
On Jan 5, 2022, at 11:02 AM, kernel test robot <lkp@xxxxxxxxx>
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@xxxxxxxxx/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@xxxxxxxxx>
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