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
.config.gz
Description: application/gzip