tree:
https://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-ld-ams
head: d78091062eb19d9e885d04feb1a57ca8380efc79
commit: d78091062eb19d9e885d04feb1a57ca8380efc79 [3/3] wip
config: xtensa-common_defconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 7.4.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout d78091062eb19d9e885d04feb1a57ca8380efc79
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:8,
from drivers/base/power/clock_ops.c:8:
include/linux/export.h:69:27: error: '__kstrtab_pm_clk_add_notifier' undeclared
here (not in a function); did you mean '__ksymtab_pm_clk_add_notifier'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> drivers/base/power/clock_ops.c:647:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(pm_clk_add_notifier);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_pm_clk_add_notifier'
undeclared here (not in a function); did you mean
'__kstrtab_pm_clk_add_notifier'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> drivers/base/power/clock_ops.c:647:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(pm_clk_add_notifier);
^~~~~~~~~~~~~~~~~
--
In file included from kernel///rcu/srcutiny.c:11:0:
include/linux/export.h:69:27: error: '__kstrtab_init_srcu_struct' undeclared
here (not in a function); did you mean '__ksymtab_init_srcu_struct'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> kernel///rcu/srcutiny.c:68:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(init_srcu_struct);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_init_srcu_struct' undeclared
here (not in a function); did you mean '__kstrtab_init_srcu_struct'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> kernel///rcu/srcutiny.c:68:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(init_srcu_struct);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab_cleanup_srcu_struct' undeclared
here (not in a function); did you mean '__ksymtab_cleanup_srcu_struct'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:88:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(cleanup_srcu_struct);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_cleanup_srcu_struct'
undeclared here (not in a function); did you mean
'__kstrtab_cleanup_srcu_struct'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:88:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(cleanup_srcu_struct);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab___srcu_read_unlock' undeclared
here (not in a function); did you mean '__ksymtab___srcu_read_unlock'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:102:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(__srcu_read_unlock);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns___srcu_read_unlock'
undeclared here (not in a function); did you mean '__kstrtab___srcu_read_unlock'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:102:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(__srcu_read_unlock);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_srcu_drive_gp' undeclared here (not in a function); did you mean
'__ksymtab_srcu_drive_gp'?
= { (unsigned long)&sym,
__kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:152:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(srcu_drive_gp);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_srcu_drive_gp' undeclared here (not in a function); did you mean
'__kstrtab_srcu_drive_gp'?
= { (unsigned long)&sym,
__kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:152:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(srcu_drive_gp);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab_call_srcu' undeclared here (not
in a function); did you mean '__ksymtab_call_srcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:176:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_srcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_call_srcu' undeclared here
(not in a function); did you mean '__kstrtab_call_srcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:176:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_srcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab_synchronize_srcu' undeclared
here (not in a function); did you mean '__ksymtab_synchronize_srcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:191:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(synchronize_srcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_synchronize_srcu' undeclared
here (not in a function); did you mean '__kstrtab_synchronize_srcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/srcutiny.c:191:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(synchronize_srcu);
^~~~~~~~~~~~~~~~~
--
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:8,
from include/linux/list.h:9,
from include/linux/wait.h:7,
from include/linux/completion.h:12,
from kernel///rcu/tiny.c:12:
include/linux/export.h:69:27: error: '__kstrtab_rcu_barrier' undeclared here
(not in a function); did you mean '__ksymtab_rcu_barrier'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:152:29: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
^~~~~~~~~~~~~~
> kernel///rcu/tiny.c:45:1: note: in expansion of macro
'EXPORT_SYMBOL'
EXPORT_SYMBOL(rcu_barrier);
^~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_rcu_barrier' undeclared here
(not in a function); did you mean '__kstrtab_rcu_barrier'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:152:29: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
^~~~~~~~~~~~~~
> kernel///rcu/tiny.c:45:1: note: in expansion of macro
'EXPORT_SYMBOL'
EXPORT_SYMBOL(rcu_barrier);
^~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab_synchronize_rcu' undeclared
here (not in a function); did you mean '__ksymtab_synchronize_rcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> kernel///rcu/tiny.c:126:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(synchronize_rcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_synchronize_rcu' undeclared
here (not in a function); did you mean '__kstrtab_synchronize_rcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
> kernel///rcu/tiny.c:126:1: note: in expansion of macro
'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(synchronize_rcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:27: error: '__kstrtab_call_rcu' undeclared here (not
in a function); did you mean '__ksymtab_call_rcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/tiny.c:151:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~
include/linux/export.h:69:44: error: '__kstrtabns_call_rcu' undeclared here
(not in a function); did you mean '__kstrtab_call_rcu'?
= { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
^
include/linux/export.h:102:2: note: in expansion of macro '__KSYMTAB_ENTRY'
__KSYMTAB_ENTRY(sym, sec)
^~~~~~~~~~~~~~~
include/linux/export.h:141:39: note: in expansion of macro '___EXPORT_SYMBOL'
#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
^~~~~~~~~~~~~~~~
include/linux/export.h:149:34: note: in expansion of macro '__EXPORT_SYMBOL'
#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
^~~~~~~~~~~~~~~
include/linux/export.h:153:33: note: in expansion of macro '_EXPORT_SYMBOL'
#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
^~~~~~~~~~~~~~
kernel///rcu/tiny.c:151:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(call_rcu);
^~~~~~~~~~~~~~~~~
..
vim +69 include/linux/export.h
f50169324df4ad Paul Gortmaker 2011-05-23 40
7290d58095712a Ard Biesheuvel 2018-08-21 41 #ifdef
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
7290d58095712a Ard Biesheuvel 2018-08-21 42 #include <linux/compiler.h>
7290d58095712a Ard Biesheuvel 2018-08-21 43 /*
7290d58095712a Ard Biesheuvel 2018-08-21 44 * Emit the ksymtab entry as a pair of
relative references: this reduces
7290d58095712a Ard Biesheuvel 2018-08-21 45 * the size by half on 64-bit
architectures, and eliminates the need for
7290d58095712a Ard Biesheuvel 2018-08-21 46 * absolute relocations that require
runtime processing on relocatable
7290d58095712a Ard Biesheuvel 2018-08-21 47 * kernels.
7290d58095712a Ard Biesheuvel 2018-08-21 48 */
7290d58095712a Ard Biesheuvel 2018-08-21 49 #define __KSYMTAB_ENTRY(sym, sec) \
7290d58095712a Ard Biesheuvel 2018-08-21 50 __ADDRESSABLE(sym) \
7290d58095712a Ard Biesheuvel 2018-08-21 51 asm(" .section
\"___ksymtab" sec "+" #sym "\", \"a\" \n" \
ed13fc33f76303 Matthias Maennich 2019-09-06 52 " .balign 4 \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 53 "__ksymtab_" #sym
": \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 54 " .long " #sym "-
. \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 55 " .long __kstrtab_" #sym
"- . \n" \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 56 " .long __kstrtabns_"
#sym "- . \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 57 " .previous \n")
7290d58095712a Ard Biesheuvel 2018-08-21 58
7290d58095712a Ard Biesheuvel 2018-08-21 59 struct kernel_symbol {
7290d58095712a Ard Biesheuvel 2018-08-21 60 int value_offset;
7290d58095712a Ard Biesheuvel 2018-08-21 61 int name_offset;
8651ec01daedad Matthias Maennich 2019-09-06 62 int namespace_offset;
7290d58095712a Ard Biesheuvel 2018-08-21 63 };
7290d58095712a Ard Biesheuvel 2018-08-21 64 #else
7290d58095712a Ard Biesheuvel 2018-08-21 65 #define __KSYMTAB_ENTRY(sym, sec) \
7290d58095712a Ard Biesheuvel 2018-08-21 66 static const struct kernel_symbol
__ksymtab_##sym \
7290d58095712a Ard Biesheuvel 2018-08-21 67
__attribute__((section("___ksymtab" sec "+" #sym), used)) \
ed13fc33f76303 Matthias Maennich 2019-09-06 68 __aligned(sizeof(void *)) \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 @69 = { (unsigned long)&sym,
__kstrtab_##sym, __kstrtabns_##sym }
7290d58095712a Ard Biesheuvel 2018-08-21 70
7290d58095712a Ard Biesheuvel 2018-08-21 71 struct kernel_symbol {
7290d58095712a Ard Biesheuvel 2018-08-21 72 unsigned long value;
7290d58095712a Ard Biesheuvel 2018-08-21 73 const char *name;
8651ec01daedad Matthias Maennich 2019-09-06 74 const char *namespace;
7290d58095712a Ard Biesheuvel 2018-08-21 75 };
7290d58095712a Ard Biesheuvel 2018-08-21 76 #endif
7290d58095712a Ard Biesheuvel 2018-08-21 77
69a94abb82eed2 Masahiro Yamada 2019-09-09 78 #ifdef __GENKSYMS__
69a94abb82eed2 Masahiro Yamada 2019-09-09 79
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 80 #define ___EXPORT_SYMBOL(sym, sec,
ns) __GENKSYMS_EXPORT_SYMBOL(sym)
69a94abb82eed2 Masahiro Yamada 2019-09-09 81
69a94abb82eed2 Masahiro Yamada 2019-09-09 82 #else
69a94abb82eed2 Masahiro Yamada 2019-09-09 83
d78091062eb19d Jessica Yu 2019-11-12 84 #define __KSTRTAB_ENTRY(sym) \
d78091062eb19d Jessica Yu 2019-11-12 85 asm(" .section
\"__ksymtab_strings\", \"aMS\", @progbits, 1 \n" \
d78091062eb19d Jessica Yu 2019-11-12 86 "__kstrtab_" #sym
": \n" \
d78091062eb19d Jessica Yu 2019-11-12 87 " .asciz \"" #sym
"\" \n" \
d78091062eb19d Jessica Yu 2019-11-12 88 " .previous \n")
d78091062eb19d Jessica Yu 2019-11-12 89
d78091062eb19d Jessica Yu 2019-11-12 90 #define __KSTRTAB_NS_ENTRY(sym,
ns) \
d78091062eb19d Jessica Yu 2019-11-12 91 asm(" .section
\"__ksymtab_strings\", \"aMS\", @progbits, 1 \n" \
d78091062eb19d Jessica Yu 2019-11-12 92 "__kstrtabns_" #sym
": \n" \
d78091062eb19d Jessica Yu 2019-11-12 93 " .asciz " #ns
" \n" \
d78091062eb19d Jessica Yu 2019-11-12 94 " .previous \n")
d78091062eb19d Jessica Yu 2019-11-12 95
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 96 /* For every exported symbol, place a
struct in the __ksymtab section */
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 97 #define ___EXPORT_SYMBOL(sym, sec,
ns) \
f50169324df4ad Paul Gortmaker 2011-05-23 98 extern typeof(sym) sym; \
8651ec01daedad Matthias Maennich 2019-09-06 99 __CRC_SYMBOL(sym, sec); \
d78091062eb19d Jessica Yu 2019-11-12 100 __KSTRTAB_ENTRY(sym); \
d78091062eb19d Jessica Yu 2019-11-12 101 __KSTRTAB_NS_ENTRY(sym, ns); \
7290d58095712a Ard Biesheuvel 2018-08-21 102 __KSYMTAB_ENTRY(sym, sec)
f50169324df4ad Paul Gortmaker 2011-05-23 103
69a94abb82eed2 Masahiro Yamada 2019-09-09 104 #endif
69a94abb82eed2 Masahiro Yamada 2019-09-09 105
69a94abb82eed2 Masahiro Yamada 2019-09-09 106 #if !defined(CONFIG_MODULES) ||
defined(__DISABLE_EXPORTS)
f922c4abdf7648 Ard Biesheuvel 2018-08-21 107
f922c4abdf7648 Ard Biesheuvel 2018-08-21 108 /*
f922c4abdf7648 Ard Biesheuvel 2018-08-21 109 * Allow symbol exports to be disabled
completely so that C code may
f922c4abdf7648 Ard Biesheuvel 2018-08-21 110 * be reused in other execution contexts
such as the UEFI stub or the
f922c4abdf7648 Ard Biesheuvel 2018-08-21 111 * decompressor.
f922c4abdf7648 Ard Biesheuvel 2018-08-21 112 */
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 113 #define __EXPORT_SYMBOL(sym, sec, ns)
f922c4abdf7648 Ard Biesheuvel 2018-08-21 114
bbda5ec671d3fe Masahiro Yamada 2018-11-30 115 #elif defined(CONFIG_TRIM_UNUSED_KSYMS)
bbda5ec671d3fe Masahiro Yamada 2018-11-30 116
bbda5ec671d3fe Masahiro Yamada 2018-11-30 117 #include <generated/autoksyms.h>
c1a95fda2a40ae Nicolas Pitre 2016-01-22 118
c1a95fda2a40ae Nicolas Pitre 2016-01-22 119 /*
c1a95fda2a40ae Nicolas Pitre 2016-01-22 120 * For fine grained build dependencies,
we want to tell the build system
c1a95fda2a40ae Nicolas Pitre 2016-01-22 121 * about each possible exported symbol
even if they're not actually exported.
bbda5ec671d3fe Masahiro Yamada 2018-11-30 122 * We use a symbol pattern
__ksym_marker_<symbol> that the build system filters
bbda5ec671d3fe Masahiro Yamada 2018-11-30 123 * from the $(NM) output (see
scripts/gen_ksymdeps.sh). These symbols are
bbda5ec671d3fe Masahiro Yamada 2018-11-30 124 * discarded in the final link stage.
c1a95fda2a40ae Nicolas Pitre 2016-01-22 125 */
bbda5ec671d3fe Masahiro Yamada 2018-11-30 126 #define __ksym_marker(sym) \
bbda5ec671d3fe Masahiro Yamada 2018-11-30 127 static int __ksym_marker_##sym[0]
__section(".discard.ksym") __used
f235541699bcf1 Nicolas Pitre 2016-01-22 128
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 129 #define __EXPORT_SYMBOL(sym, sec,
ns) \
bbda5ec671d3fe Masahiro Yamada 2018-11-30 130 __ksym_marker(sym); \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 131 __cond_export_sym(sym, sec, ns,
__is_defined(__KSYM_##sym))
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 132 #define __cond_export_sym(sym, sec, ns,
conf) \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 133 ___cond_export_sym(sym, sec, ns, conf)
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 134 #define ___cond_export_sym(sym, sec, ns,
enabled) \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 135 __cond_export_sym_##enabled(sym, sec,
ns)
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 136 #define __cond_export_sym_1(sym, sec,
ns) ___EXPORT_SYMBOL(sym, sec, ns)
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 137 #define __cond_export_sym_0(sym, sec,
ns) /* nothing */
8651ec01daedad Matthias Maennich 2019-09-06 138
f235541699bcf1 Nicolas Pitre 2016-01-22 139 #else
f235541699bcf1 Nicolas Pitre 2016-01-22 140
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 141 #define __EXPORT_SYMBOL(sym, sec,
ns) ___EXPORT_SYMBOL(sym, sec, ns)
f50169324df4ad Paul Gortmaker 2011-05-23 142
69a94abb82eed2 Masahiro Yamada 2019-09-09 143 #endif /* CONFIG_MODULES */
f50169324df4ad Paul Gortmaker 2011-05-23 144
8e2adc6a00cd96 Matthias Maennich 2019-09-06 145 #ifdef DEFAULT_SYMBOL_NAMESPACE
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 146 #include <linux/stringify.h>
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 147 #define _EXPORT_SYMBOL(sym,
sec) __EXPORT_SYMBOL(sym, sec, __stringify(DEFAULT_SYMBOL_NAMESPACE))
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 148 #else
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 @149 #define _EXPORT_SYMBOL(sym,
sec) __EXPORT_SYMBOL(sym, sec, "")
8e2adc6a00cd96 Matthias Maennich 2019-09-06 150 #endif
8e2adc6a00cd96 Matthias Maennich 2019-09-06 151
:::::: The code at line 69 was first introduced by commit
:::::: c3a6cf19e695c8b0a9bf8b5933f863e12d878b7c export: avoid code duplication in
include/linux/export.h
:::::: TO: Masahiro Yamada <yamada.masahiro(a)socionext.com>
:::::: CC: Jessica Yu <jeyu(a)kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation