Re: [PATCH v3 1/9] kcsan: Add Kernel Concurrency Sanitizer infrastructure

From: kbuild test robot
Date: Wed Nov 06 2019 - 15:01:05 EST


Hi Marco,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.4-rc6]
[cannot apply to next-20191106]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Marco-Elver/Add-Kernel-Concurrency-Sanitizer-KCSAN/20191105-002542
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a99d8080aaf358d5d23581244e5da23b35e340b9
config: x86_64-randconfig-a001-201944 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
>> include/linux/compiler_attributes.h:35:29: error: "__GCC4_has_attribute___no_sanitize_thread__" is not defined [-Werror=undef]
# define __has_attribute(x) __GCC4_has_attribute_##x
^
include/linux/compiler-gcc.h:148:5: note: in expansion of macro '__has_attribute'
#if __has_attribute(__no_sanitize_thread__) && defined(__SANITIZE_THREAD__)
^
cc1: all warnings being treated as errors

vim +/__GCC4_has_attribute___no_sanitize_thread__ +35 include/linux/compiler_attributes.h

a3f8a30f3f0079 Miguel Ojeda 2018-08-30 4
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 5 /*
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 6 * The attributes in this file are unconditionally defined and they directly
24efee412c7584 Miguel Ojeda 2018-11-06 7 * map to compiler attribute(s), unless one of the compilers does not support
24efee412c7584 Miguel Ojeda 2018-11-06 8 * the attribute. In that case, __has_attribute is used to check for support
24efee412c7584 Miguel Ojeda 2018-11-06 9 * and the reason is stated in its comment ("Optional: ...").
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 10 *
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 11 * Any other "attributes" (i.e. those that depend on a configuration option,
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 12 * on a compiler, on an architecture, on plugins, on other attributes...)
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 13 * should be defined elsewhere (e.g. compiler_types.h or compiler-*.h).
24efee412c7584 Miguel Ojeda 2018-11-06 14 * The intention is to keep this file as simple as possible, as well as
24efee412c7584 Miguel Ojeda 2018-11-06 15 * compiler- and version-agnostic (e.g. avoiding GCC_VERSION checks).
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 16 *
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 17 * This file is meant to be sorted (by actual attribute name,
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 18 * not by #define identifier). Use the __attribute__((__name__)) syntax
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 19 * (i.e. with underscores) to avoid future collisions with other macros.
24efee412c7584 Miguel Ojeda 2018-11-06 20 * Provide links to the documentation of each supported compiler, if it exists.
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 21 */
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 22
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 23 /*
24efee412c7584 Miguel Ojeda 2018-11-06 24 * __has_attribute is supported on gcc >= 5, clang >= 2.9 and icc >= 17.
24efee412c7584 Miguel Ojeda 2018-11-06 25 * In the meantime, to support 4.6 <= gcc < 5, we implement __has_attribute
24efee412c7584 Miguel Ojeda 2018-11-06 26 * by hand.
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 27 *
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 28 * sparse does not support __has_attribute (yet) and defines __GNUC_MINOR__
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 29 * depending on the compiler used to build it; however, these attributes have
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 30 * no semantic effects for sparse, so it does not matter. Also note that,
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 31 * in order to avoid sparse's warnings, even the unsupported ones must be
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 32 * defined to 0.
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 33 */
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 34 #ifndef __has_attribute
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 @35 # define __has_attribute(x) __GCC4_has_attribute_##x
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 36 # define __GCC4_has_attribute___assume_aligned__ (__GNUC_MINOR__ >= 9)
c0d9782f5b6d71 Miguel Ojeda 2019-02-08 37 # define __GCC4_has_attribute___copy__ 0
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 38 # define __GCC4_has_attribute___designated_init__ 0
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 39 # define __GCC4_has_attribute___externally_visible__ 1
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 40 # define __GCC4_has_attribute___noclone__ 1
92676236917d8e Miguel Ojeda 2018-09-19 41 # define __GCC4_has_attribute___nonstring__ 0
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 42 # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8)
294f69e662d157 Joe Perches 2019-10-05 43 # define __GCC4_has_attribute___fallthrough__ 0
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 44 #endif
a3f8a30f3f0079 Miguel Ojeda 2018-08-30 45

:::::: The code at line 35 was first introduced by commit
:::::: a3f8a30f3f0079c7edfc72e329eee8594fb3e3cb Compiler Attributes: use feature checks instead of version checks

:::::: TO: Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx>
:::::: CC: Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip