Hi Nick,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6ba1b005ffc388c2aeaddae20da29e4810dea298
commit: b059f801a937d164e03b33c1848bb3dca67c0b04 x86/purgatory: Use 
CFLAGS_REMOVE rather than reset KBUILD_CFLAGS
date:   12 months ago
config: x86_64-randconfig-r032-20200729 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
        git checkout b059f801a937d164e03b33c1848bb3dca67c0b04
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from arch/x86/boot/compressed/string.c:11:
>> arch/x86/boot/compressed/../string.c:43:5: warning: no previous prototype 
>> for 'bcmp' [-Wmissing-prototypes]
      43 | int bcmp(const void *s1, const void *s2, size_t len)
         |     ^~~~
>> arch/x86/boot/compressed/../string.c:146:6: warning: no previous prototype 
>> for 'simple_strtol' [-Wmissing-prototypes]
     146 | long simple_strtol(const char *cp, char **endp, unsigned int base)
         |      ^~~~~~~~~~~~~
>> arch/x86/boot/compressed/string.c:53:7: warning: no previous prototype for 
>> 'memmove' [-Wmissing-prototypes]
      53 | void *memmove(void *dest, const void *src, size_t n)
         |       ^~~~~~~
--
>> arch/x86/purgatory/purgatory.c:76:6: warning: no previous prototype for 
>> 'warn' [-Wmissing-prototypes]
      76 | void warn(const char *msg) {}
         |      ^~~~

vim +/bcmp +43 arch/x86/boot/compressed/../string.c

fb4cac573ef6dc arch/x86/boot/string.c  Vivek Goyal      2014-03-18   39  
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   40  /*
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   41   * 
Clang may lower `memcmp == 0` to `bcmp == 0`.
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   42   */
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07  @43  int 
bcmp(const void *s1, const void *s2, size_t len)
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   44  {
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   45         
return memcmp(s1, s2, len);
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   46  }
4ce97317f41d38 arch/x86/boot/string.c  Nick Desaulniers 2019-08-07   47  
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   48  int 
strcmp(const char *str1, const char *str2)
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   49  {
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   50         
const unsigned char *s1 = (const unsigned char *)str1;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   51         
const unsigned char *s2 = (const unsigned char *)str2;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   52         
int delta = 0;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   53  
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   54         
while (*s1 || *s2) {
1c1d046be69249 arch/x86/boot/string.c  Arjun Sreedharan 2015-03-16   55         
        delta = *s1 - *s2;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   56         
        if (delta)
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   57         
                return delta;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   58         
        s1++;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   59         
        s2++;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   60         
}
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   61         
return 0;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   62  }
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   63  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   64  int 
strncmp(const char *cs, const char *ct, size_t count)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   65  {
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   66         
unsigned char c1, c2;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   67  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   68         
while (count) {
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   69         
        c1 = *cs++;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   70         
        c2 = *ct++;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   71         
        if (c1 != c2)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   72         
                return c1 < c2 ? -1 : 1;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   73         
        if (!c1)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   74         
                break;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   75         
        count--;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   76         
}
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   77         
return 0;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   78  }
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   79  
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   80  size_t 
strnlen(const char *s, size_t maxlen)
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   81  {
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   82         
const char *es = s;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   83         
while (*es && maxlen) {
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   84         
        es++;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   85         
        maxlen--;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   86         
}
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   87  
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   88         
return (es - s);
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   89  }
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   90  
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   91  
unsigned int atou(const char *s)
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   92  {
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   93         
unsigned int i = 0;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   94         
while (isdigit(*s))
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   95         
        i = i * 10 + (*s++ - '0');
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   96         
return i;
5be86566151626 arch/i386/boot/string.c H. Peter Anvin   2007-07-11   97  }
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   98  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11   99  /* 
Works only for digits and letters, but small and fast */
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  100  
#define TOLOWER(x) ((x) | 0x20)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  101  
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  102  static 
unsigned int simple_guess_base(const char *cp)
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  103  {
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  104         
if (cp[0] == '0') {
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  105         
        if (TOLOWER(cp[1]) == 'x' && isxdigit(cp[2]))
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  106         
                return 16;
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  107         
        else
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  108         
                return 8;
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  109         
} else {
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  110         
        return 10;
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  111         
}
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  112  }
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  113  
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  114  /**
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  115   * 
simple_strtoull - convert a string to an unsigned long long
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  116   * 
@cp: The start of the string
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  117   * 
@endp: A pointer to the end of the parsed string will be placed here
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  118   * 
@base: The number base to use
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  119   */
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  120  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  121  
unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int 
base)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  122  {
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  123         
unsigned long long result = 0;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  124  
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  125         
if (!base)
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  126         
        base = simple_guess_base(cp);
ce0aa5dd20e443 arch/x86/boot/string.c  Yinghai Lu       2010-07-13  127  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  128         
if (base == 16 && cp[0] == '0' && TOLOWER(cp[1]) == 'x')
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  129         
        cp += 2;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  130  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  131         
while (isxdigit(*cp)) {
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  132         
        unsigned int value;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  133  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  134         
        value = isdigit(*cp) ? *cp - '0' : TOLOWER(*cp) - 'a' + 10;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  135         
        if (value >= base)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  136         
                break;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  137         
        result = result * base + value;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  138         
        cp++;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  139         
}
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  140         
if (endp)
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  141         
        *endp = (char *)cp;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  142  
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  143         
return result;
fa97bdf92709ad arch/x86/boot/string.c  Pekka Enberg     2010-07-11  144  }
291f36325f9f25 arch/x86/boot/string.c  Matt Fleming     2011-12-12  145  
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13 @146  long 
simple_strtol(const char *cp, char **endp, unsigned int base)
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  147  {
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  148         
if (*cp == '-')
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  149         
        return -simple_strtoull(cp + 1, endp, base);
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  150  
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  151         
return simple_strtoull(cp, endp, base);
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  152  }
d52e7d5a952c5e arch/x86/boot/string.c  Baoquan He       2017-05-13  153  

:::::: The code at line 43 was first introduced by commit
:::::: 4ce97317f41d38584fb93578e922fcd19e535f5b x86/purgatory: Do not use 
__builtin_memcpy and __builtin_memset

:::::: TO: Nick Desaulniers <ndesaulni...@google.com>
:::::: CC: Thomas Gleixner <t...@linutronix.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to