tree: https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git mcsafe5 head: 89c1c25d692d45335b548c7551a763166e9ae182 commit: 8f43c9694a11c999af98476a52c8beb7fc7c71a1 [2/4] x86/mce, PCI: Provide quirks to identify Xeon models with machine check recovery config: i386-randconfig-x016-201634 (attached as .config) compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705 reproduce: git checkout 8f43c9694a11c999af98476a52c8beb7fc7c71a1 # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from drivers/pci/quirks.c:4434:0: >> arch/x86/include/asm/string_64.h:30:0: warning: "__HAVE_ARCH_MEMCPY" redefined #define __HAVE_ARCH_MEMCPY 1 In file included from arch/x86/include/asm/string.h:2:0, from include/linux/string.h:18, from include/uapi/linux/uuid.h:21, from include/linux/uuid.h:19, from include/linux/mod_devicetable.h:12, from include/linux/pci.h:20, from drivers/pci/quirks.c:17: arch/x86/include/asm/string_32.h:144:0: note: this is the location of the previous definition #define __HAVE_ARCH_MEMCPY >> arch/x86/include/asm/string_32.h:320:3: error: expected ')' before '?' token ? __constant_count_memset((s), (c), (count)) \ ^ >> arch/x86/include/asm/string_64.h:57:7: note: in expansion of macro '__memset' void *__memset(void *s, int c, size_t n); ^~~~~~~~ vim +/__HAVE_ARCH_MEMCPY +30 arch/x86/include/asm/string_64.h 953b2f1e include/asm-x86/string_64.h Joe Perches 2008-03-23 24 return to; ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 25 } ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 26 ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 27 /* Even with __builtin_ the compiler may decide to use the out of line ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 28 function. */ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 29 ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 @30 #define __HAVE_ARCH_MEMCPY 1 a75ca545 arch/x86/include/asm/string_64.h Andrey Ryabinin 2015-10-16 31 extern void *memcpy(void *to, const void *from, size_t len); 393f203f arch/x86/include/asm/string_64.h Andrey Ryabinin 2015-02-13 32 extern void *__memcpy(void *to, const void *from, size_t len); 393f203f arch/x86/include/asm/string_64.h Andrey Ryabinin 2015-02-13 33 f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 34 #ifndef CONFIG_KMEMCHECK a75ca545 arch/x86/include/asm/string_64.h Andrey Ryabinin 2015-10-16 35 #if (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || __GNUC__ < 4 ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 36 #define memcpy(dst, src, len) \ 953b2f1e include/asm-x86/string_64.h Joe Perches 2008-03-23 37 ({ \ 953b2f1e include/asm-x86/string_64.h Joe Perches 2008-03-23 38 size_t __len = (len); \ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 39 void *__ret; \ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 40 if (__builtin_constant_p(len) && __len >= 64) \ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 41 __ret = __memcpy((dst), (src), __len); \ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 42 else \ ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 43 __ret = __builtin_memcpy((dst), (src), __len); \ 953b2f1e include/asm-x86/string_64.h Joe Perches 2008-03-23 44 __ret; \ 953b2f1e include/asm-x86/string_64.h Joe Perches 2008-03-23 45 }) aac57f81 include/asm-x86_64/string.h Andi Kleen 2007-07-21 46 #endif f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 47 #else f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 48 /* f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 49 * kmemcheck becomes very happy if we use the REP instructions unconditionally, f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 50 * because it means that we know both memory operands in advance. f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 51 */ f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 52 #define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len)) f8561296 arch/x86/include/asm/string_64.h Vegard Nossum 2008-04-04 53 #endif ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 54 ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 55 #define __HAVE_ARCH_MEMSET 6edfba1b include/asm-x86_64/string.h Andi Kleen 2006-03-25 56 void *memset(void *s, int c, size_t n); 393f203f arch/x86/include/asm/string_64.h Andrey Ryabinin 2015-02-13 @57 void *__memset(void *s, int c, size_t n); ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 58 ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 59 #define __HAVE_ARCH_MEMMOVE ^1da177e include/asm-x86_64/string.h Linus Torvalds 2005-04-16 60 void *memmove(void *dest, const void *src, size_t count); :::::: The code at line 30 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation