[rcu:dev 117/117] include/linux/export.h:61:20: error: redefinition of '__kstrtab_call_rcu_sched'

From: kbuild test robot
Date: Tue Jul 03 2018 - 00:09:37 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
head: 3981406d6621b8a72a873bdc88d0a95d2e928c9e
commit: 3981406d6621b8a72a873bdc88d0a95d2e928c9e [117/117] rcu: Define RCU-sched API in terms of RCU for Tree RCU PREEMPT builds
config: x86_64-randconfig-x019-201826 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
git checkout 3981406d6621b8a72a873bdc88d0a95d2e928c9e
# save the attached .config to linux build tree
make ARCH=x86_64

All error/warnings (new ones prefixed by >>):

kernel//rcu/tree.c:2996:6: error: redefinition of 'call_rcu_sched'
void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
^~~~~~~~~~~~~~
In file included from include/linux/rcupdate_wait.h:9:0,
from kernel//rcu/tree.c:38:
include/linux/rcupdate.h:53:18: note: previous definition of 'call_rcu_sched' was here
#define call_rcu call_rcu_sched
^
kernel//rcu/tree.c:2983:6: note: in expansion of macro 'call_rcu'
void call_rcu(struct rcu_head *head, rcu_callback_t func)
^~~~~~~~
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:7,
from kernel//rcu/tree.c:34:
>> include/linux/export.h:61:20: error: redefinition of '__kstrtab_call_rcu_sched'
static const char __kstrtab_##sym[] \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
>> kernel//rcu/tree.c:3000:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu_sched);
^~~~~~~~~~~~~~~~~
include/linux/export.h:61:20: note: previous definition of '__kstrtab_call_rcu_sched' was here
static const char __kstrtab_##sym[] \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel//rcu/tree.c:2987:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:64:36: error: redefinition of '__ksymtab_call_rcu_sched'
static const struct kernel_symbol __ksymtab_##sym \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
>> kernel//rcu/tree.c:3000:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu_sched);
^~~~~~~~~~~~~~~~~
include/linux/export.h:64:36: note: previous definition of '__ksymtab_call_rcu_sched' was here
static const struct kernel_symbol __ksymtab_##sym \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel//rcu/tree.c:2987:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~
--
kernel/rcu/tree.c:2996:6: error: redefinition of 'call_rcu_sched'
void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
^~~~~~~~~~~~~~
In file included from include/linux/rcupdate_wait.h:9:0,
from kernel/rcu/tree.c:38:
include/linux/rcupdate.h:53:18: note: previous definition of 'call_rcu_sched' was here
#define call_rcu call_rcu_sched
^
kernel/rcu/tree.c:2983:6: note: in expansion of macro 'call_rcu'
void call_rcu(struct rcu_head *head, rcu_callback_t func)
^~~~~~~~
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:7,
from kernel/rcu/tree.c:34:
>> include/linux/export.h:61:20: error: redefinition of '__kstrtab_call_rcu_sched'
static const char __kstrtab_##sym[] \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel/rcu/tree.c:3000:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu_sched);
^~~~~~~~~~~~~~~~~
include/linux/export.h:61:20: note: previous definition of '__kstrtab_call_rcu_sched' was here
static const char __kstrtab_##sym[] \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel/rcu/tree.c:2987:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:64:36: error: redefinition of '__ksymtab_call_rcu_sched'
static const struct kernel_symbol __ksymtab_##sym \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel/rcu/tree.c:3000:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu_sched);
^~~~~~~~~~~~~~~~~
include/linux/export.h:64:36: note: previous definition of '__ksymtab_call_rcu_sched' was here
static const struct kernel_symbol __ksymtab_##sym \
^
include/linux/export.h:94:25: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL ___EXPORT_SYMBOL
^~~~~~~~~~~~~~~~
include/linux/export.h:101:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~~
kernel/rcu/tree.c:2987:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~

vim +/__kstrtab_call_rcu_sched +61 include/linux/export.h

f5016932 Paul Gortmaker 2011-05-23 56
f5016932 Paul Gortmaker 2011-05-23 57 /* For every exported symbol, place a struct in the __ksymtab section */
f2355416 Nicolas Pitre 2016-01-22 58 #define ___EXPORT_SYMBOL(sym, sec) \
f5016932 Paul Gortmaker 2011-05-23 59 extern typeof(sym) sym; \
f5016932 Paul Gortmaker 2011-05-23 60 __CRC_SYMBOL(sym, sec) \
f5016932 Paul Gortmaker 2011-05-23 @61 static const char __kstrtab_##sym[] \
f5016932 Paul Gortmaker 2011-05-23 62 __attribute__((section("__ksymtab_strings"), aligned(1))) \
94e58e0a Masahiro Yamada 2018-05-09 63 = #sym; \
b67067f1 Nicholas Piggin 2016-08-24 64 static const struct kernel_symbol __ksymtab_##sym \
f5016932 Paul Gortmaker 2011-05-23 65 __used \
b67067f1 Nicholas Piggin 2016-08-24 66 __attribute__((section("___ksymtab" sec "+" #sym), used)) \
f5016932 Paul Gortmaker 2011-05-23 67 = { (unsigned long)&sym, __kstrtab_##sym }
f5016932 Paul Gortmaker 2011-05-23 68

:::::: The code at line 61 was first introduced by commit
:::::: f50169324df4ad942e544386d136216c8617636a module.h: split out the EXPORT_SYMBOL into export.h

:::::: TO: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
:::::: CC: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip