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 errors (new ones prefixed by >>):
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:8,
from include/linux/clk.h:13,
from drivers//clk/clk-bulk.c:8:
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_put' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_put'?
= { (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//clk/clk-bulk.c:79:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_put);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_put' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_put'?
= { (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//clk/clk-bulk.c:79:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_put);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_get' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_get'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:119:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_get);
^~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_get' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_get'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:119:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_get);
^~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_get_optional' undeclared here (not in a function); did you
mean '__ksymtab_clk_bulk_get_optional'?
= { (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//clk/clk-bulk.c:126:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_get_optional);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_get_optional' undeclared here (not in a function); did you
mean '__kstrtab_clk_bulk_get_optional'?
= { (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//clk/clk-bulk.c:126:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_get_optional);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_put_all' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_put_all'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:137:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_put_all);
^~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_put_all' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_put_all'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:137:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_put_all);
^~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_get_all' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_get_all'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:149:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_get_all);
^~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_get_all' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_get_all'?
= { (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, "")
^~~~~~~~~~~~~~
drivers//clk/clk-bulk.c:149:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(clk_bulk_get_all);
^~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_unprepare' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_unprepare'?
= { (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//clk/clk-bulk.c:166:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_unprepare);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_unprepare' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_unprepare'?
= { (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//clk/clk-bulk.c:166:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_unprepare);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_prepare' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_prepare'?
= { (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//clk/clk-bulk.c:198:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_prepare);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_prepare' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_prepare'?
= { (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//clk/clk-bulk.c:198:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_prepare);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_disable' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_disable'?
= { (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//clk/clk-bulk.c:217:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_disable);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_disable' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_disable'?
= { (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//clk/clk-bulk.c:217:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_disable);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:27: error:
'__kstrtab_clk_bulk_enable' undeclared here (not in a function); did you mean
'__ksymtab_clk_bulk_enable'?
= { (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//clk/clk-bulk.c:248:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_enable);
^~~~~~~~~~~~~~~~~
> include/linux/export.h:69:44: error:
'__kstrtabns_clk_bulk_enable' undeclared here (not in a function); did you mean
'__kstrtab_clk_bulk_enable'?
= { (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//clk/clk-bulk.c:248:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
EXPORT_SYMBOL_GPL(clk_bulk_enable);
^~~~~~~~~~~~~~~~~
..
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