tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2020.10.26b head: 387807f02923dd87ad097a4245ddbd9d8079687d commit: c1370c128cf49147f1d4c670b7101134231b3dc5 [81/97] srcu: Avoid escaped section names config: x86_64-rhel (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?id=c1370c128cf49147f1d4c670b7101134231b3dc5 git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git git fetch --no-tags rcu dev.2020.10.26b git checkout c1370c128cf49147f1d4c670b7101134231b3dc5 # 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 errors (new ones prefixed by >>): In file included from include/linux/compiler_types.h:65, from <command-line>: >> include/linux/srcutree.h:127:13: error: '___srcu_struct_ptrs' undeclared >> here (not in a function) 127 | __section(___srcu_struct_ptrs) = &name | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:257:68: note: in definition of macro '__section' 257 | #define __section(section) __attribute__((__section__(section))) | ^~~~~~~ include/linux/srcutree.h:135:34: note: in expansion of macro '__DEFINE_SRCU' 135 | #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) | ^~~~~~~~~~~~~ drivers/gpu/drm/drm_drv.c:68:1: note: in expansion of macro 'DEFINE_STATIC_SRCU' 68 | DEFINE_STATIC_SRCU(drm_unplug_srcu); | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/srcu.h:49, from include/linux/notifier.h:16, from arch/x86/include/asm/uprobes.h:13, from include/linux/uprobes.h:49, from include/linux/mm_types.h:14, from include/linux/mmzone.h:21, from include/linux/gfp.h:6, from include/linux/xarray.h:14, from include/linux/radix-tree.h:19, from include/linux/fs.h:15, from include/linux/debugfs.h:15, from drivers/gpu/drm/drm_drv.c:29: >> include/linux/srcutree.h:126:9: error: section attribute argument not a >> string constant 126 | struct srcu_struct * const __srcu_struct_##name \ | ^~~~~~~~~~~ include/linux/srcutree.h:135:34: note: in expansion of macro '__DEFINE_SRCU' 135 | #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) | ^~~~~~~~~~~~~ drivers/gpu/drm/drm_drv.c:68:1: note: in expansion of macro 'DEFINE_STATIC_SRCU' 68 | DEFINE_STATIC_SRCU(drm_unplug_srcu); | ^~~~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:65, from <command-line>: >> include/linux/srcutree.h:127:13: error: '___srcu_struct_ptrs' undeclared >> here (not in a function) 127 | __section(___srcu_struct_ptrs) = &name | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:257:68: note: in definition of macro '__section' 257 | #define __section(section) __attribute__((__section__(section))) | ^~~~~~~ include/linux/srcutree.h:135:34: note: in expansion of macro '__DEFINE_SRCU' 135 | #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) | ^~~~~~~~~~~~~ fs/dlm/lowcomms.c:139:1: note: in expansion of macro 'DEFINE_STATIC_SRCU' 139 | DEFINE_STATIC_SRCU(connections_srcu); | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/srcu.h:49, from include/linux/notifier.h:16, from arch/x86/include/asm/uprobes.h:13, from include/linux/uprobes.h:49, from include/linux/mm_types.h:14, from include/linux/mmzone.h:21, from include/linux/gfp.h:6, from include/linux/xarray.h:14, from include/linux/radix-tree.h:19, from include/linux/fs.h:15, from include/linux/compat.h:17, from include/linux/ethtool.h:17, from include/linux/netdevice.h:37, from include/net/sock.h:46, from fs/dlm/lowcomms.c:46: >> include/linux/srcutree.h:126:9: error: section attribute argument not a >> string constant 126 | struct srcu_struct * const __srcu_struct_##name \ | ^~~~~~~~~~~ include/linux/srcutree.h:135:34: note: in expansion of macro '__DEFINE_SRCU' 135 | #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) | ^~~~~~~~~~~~~ fs/dlm/lowcomms.c:139:1: note: in expansion of macro 'DEFINE_STATIC_SRCU' 139 | DEFINE_STATIC_SRCU(connections_srcu); | ^~~~~~~~~~~~~~~~~~ vim +/___srcu_struct_ptrs +127 include/linux/srcutree.h 103 104 /* 105 * Define and initialize a srcu struct at build time. 106 * Do -not- call init_srcu_struct() nor cleanup_srcu_struct() on it. 107 * 108 * Note that although DEFINE_STATIC_SRCU() hides the name from other 109 * files, the per-CPU variable rules nevertheless require that the 110 * chosen name be globally unique. These rules also prohibit use of 111 * DEFINE_STATIC_SRCU() within a function. If these rules are too 112 * restrictive, declare the srcu_struct manually. For example, in 113 * each file: 114 * 115 * static struct srcu_struct my_srcu; 116 * 117 * Then, before the first use of each my_srcu, manually initialize it: 118 * 119 * init_srcu_struct(&my_srcu); 120 * 121 * See include/linux/percpu-defs.h for the rules on per-CPU variables. 122 */ 123 #ifdef MODULE 124 # define __DEFINE_SRCU(name, is_static) \ 125 is_static struct srcu_struct name; \ > 126 struct srcu_struct * const __srcu_struct_##name > \ > 127 __section(___srcu_struct_ptrs) = &name 128 #else 129 # define __DEFINE_SRCU(name, is_static) \ 130 static DEFINE_PER_CPU(struct srcu_data, name##_srcu_data); \ 131 is_static struct srcu_struct name = \ 132 __SRCU_STRUCT_INIT(name, name##_srcu_data) 133 #endif 134 #define DEFINE_SRCU(name) __DEFINE_SRCU(name, /* not static */) 135 #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) 136 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip