From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C24EC07E9B for ; Fri, 9 Jul 2021 07:20:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 71CF0611C2 for ; Fri, 9 Jul 2021 07:20:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231223AbhGIHXb (ORCPT ); Fri, 9 Jul 2021 03:23:31 -0400 Received: from out30-45.freemail.mail.aliyun.com ([115.124.30.45]:53046 "EHLO out30-45.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231192AbhGIHXa (ORCPT ); Fri, 9 Jul 2021 03:23:30 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R141e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04395;MF=hsiangkao@linux.alibaba.com;NM=1;PH=DS;RN=7;SR=0;TI=SMTPD_---0UfC4ohT_1625815243; Received: from B-P7TQMD6M-0146.local(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0UfC4ohT_1625815243) by smtp.aliyun-inc.com(127.0.0.1); Fri, 09 Jul 2021 15:20:45 +0800 Date: Fri, 9 Jul 2021 15:20:41 +0800 From: Gao Xiang To: stable Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Nick Terrell , Andrew Morton , stable , kernel test robot Subject: Re: [linux-stable-rc:linux-5.4.y 7045/7049] mipsel-linux-ld: decompress.c:undefined reference to `memmove' Message-ID: References: <202107070120.6dOj1kB7-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Greg, stable all, On Fri, Jul 09, 2021 at 01:50:16PM +0800, Gao Xiang wrote: > On Wed, Jul 07, 2021 at 01:15:28AM +0800, kernel test robot wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y > > head: 3909e2374335335c9504467caabc906d3f7487e4 > > commit: defcc2b5e54a4724fb5733f802edf5dd596018b6 [7045/7049] lib/lz4: explicitly support in-place decompression > > 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/stable/linux-stable-rc.git/commit/?id=defcc2b5e54a4724fb5733f802edf5dd596018b6 > > git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git > > git fetch --no-tags linux-stable-rc linux-5.4.y > > git checkout defcc2b5e54a4724fb5733f802edf5dd596018b6 > > # 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 > > Which is weird, does the preboot environment miss memmove() on mipsel? > Just a guess, I may look into that myself later... > After manually checking, I found memmove() for the mips preboot environment was incidentally introduced by commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10 as below (so v5.10.y is fine): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/mips/boot/compressed?h=v5.10&id=a510b616131f85215ba156ed67e5ed1c0701f80f And when I applied the following patch partially from the original commit, the compile error with the command lines mentioned above was gone: diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; } + +void * __weak memmove(void *dest, const void *src, size_t n) +{ + unsigned int i; + const char *s = src; + char *d = dest; + + if ((uintptr_t)dest < (uintptr_t)src) { + for (i = 0; i < n; i++) + d[i] = s[i]; + } else { + for (i = n; i > 0; i--) + d[i - 1] = s[i - 1]; + } + return dest; +} How to backport such commit partially to the v5.4.y stable kernel? ... Also, it would be better to check other mips compile combinations automatically since it's hard for me to check all such combinations one-by-one... Thanks, Gao Xiang > Thanks, > Gao Xiang > > > > > All errors (new ones prefixed by >>): > > > > mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe_withSmallPrefix': > > decompress.c:(.text+0x220): undefined reference to `memmove' > > mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_fast_extDict': > > decompress.c:(.text+0x694): undefined reference to `memmove' > > >> mipsel-linux-ld: decompress.c:(.text+0x774): undefined reference to `memmove' > > mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe': > > decompress.c:(.text+0xb88): undefined reference to `memmove' > > mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe_partial': > > decompress.c:(.text+0x1078): undefined reference to `memmove' > > mipsel-linux-ld: arch/mips/boot/compressed/decompress.o:decompress.c:(.text+0x12f8): more undefined references to `memmove' follow > > > > --- > > 0-DAY CI Kernel Test Service, Intel Corporation > > https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org >