[norov:fns 8/8] include/linux/export.h:57:43: error: redefinition of '__ksymtab__find_first_bit'

From: kernel test robot
Date: Fri Jun 10 2022 - 03:39:12 EST


tree: https://github.com/norov/linux fns
head: 785e34f40a6ad867ddc1fccf032a54bb41563865
commit: 785e34f40a6ad867ddc1fccf032a54bb41563865 [8/8] fns
config: arc-randconfig-r043-20220609 (https://download.01.org/0day-ci/archive/20220610/202206101537.a5KuHQgw-lkp@xxxxxxxxx/config)
compiler: arceb-elf-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/norov/linux/commit/785e34f40a6ad867ddc1fccf032a54bb41563865
git remote add norov https://github.com/norov/linux
git fetch --no-tags norov fns
git checkout 785e34f40a6ad867ddc1fccf032a54bb41563865
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arc SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

In file included from lib/find_bit.c:17:
>> include/linux/export.h:57:43: error: redefinition of '__ksymtab__find_first_bit'
57 | static const struct kernel_symbol __ksymtab_##sym \
| ^~~~~~~~~~
include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
96 | __KSYMTAB_ENTRY(sym, sec)
| ^~~~~~~~~~~~~~~
include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
140 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
147 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
150 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
lib/find_bit.c:105:1: note: in expansion of macro 'EXPORT_SYMBOL'
105 | EXPORT_SYMBOL(_find_first_bit);
| ^~~~~~~~~~~~~
include/linux/export.h:57:43: note: previous definition of '__ksymtab__find_first_bit' with type 'const struct kernel_symbol'
57 | static const struct kernel_symbol __ksymtab_##sym \
| ^~~~~~~~~~
include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
96 | __KSYMTAB_ENTRY(sym, sec)
| ^~~~~~~~~~~~~~~
include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
140 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
147 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
150 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
lib/find_bit.c:89:1: note: in expansion of macro 'EXPORT_SYMBOL'
89 | EXPORT_SYMBOL(_find_first_bit);
| ^~~~~~~~~~~~~


vim +/__ksymtab__find_first_bit +57 include/linux/export.h

f50169324df4ad Paul Gortmaker 2011-05-23 31
7290d58095712a Ard Biesheuvel 2018-08-21 32 #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
7290d58095712a Ard Biesheuvel 2018-08-21 33 #include <linux/compiler.h>
7290d58095712a Ard Biesheuvel 2018-08-21 34 /*
7290d58095712a Ard Biesheuvel 2018-08-21 35 * Emit the ksymtab entry as a pair of relative references: this reduces
7290d58095712a Ard Biesheuvel 2018-08-21 36 * the size by half on 64-bit architectures, and eliminates the need for
7290d58095712a Ard Biesheuvel 2018-08-21 37 * absolute relocations that require runtime processing on relocatable
7290d58095712a Ard Biesheuvel 2018-08-21 38 * kernels.
7290d58095712a Ard Biesheuvel 2018-08-21 39 */
7290d58095712a Ard Biesheuvel 2018-08-21 40 #define __KSYMTAB_ENTRY(sym, sec) \
7290d58095712a Ard Biesheuvel 2018-08-21 41 __ADDRESSABLE(sym) \
7290d58095712a Ard Biesheuvel 2018-08-21 42 asm(" .section \"___ksymtab" sec "+" #sym "\", \"a\" \n" \
ed13fc33f76303 Matthias Maennich 2019-09-06 43 " .balign 4 \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 44 "__ksymtab_" #sym ": \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 45 " .long " #sym "- . \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 46 " .long __kstrtab_" #sym "- . \n" \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 47 " .long __kstrtabns_" #sym "- . \n" \
7290d58095712a Ard Biesheuvel 2018-08-21 48 " .previous \n")
7290d58095712a Ard Biesheuvel 2018-08-21 49
7290d58095712a Ard Biesheuvel 2018-08-21 50 struct kernel_symbol {
7290d58095712a Ard Biesheuvel 2018-08-21 51 int value_offset;
7290d58095712a Ard Biesheuvel 2018-08-21 52 int name_offset;
8651ec01daedad Matthias Maennich 2019-09-06 53 int namespace_offset;
7290d58095712a Ard Biesheuvel 2018-08-21 54 };
7290d58095712a Ard Biesheuvel 2018-08-21 55 #else
7290d58095712a Ard Biesheuvel 2018-08-21 56 #define __KSYMTAB_ENTRY(sym, sec) \
7290d58095712a Ard Biesheuvel 2018-08-21 @57 static const struct kernel_symbol __ksymtab_##sym \
7290d58095712a Ard Biesheuvel 2018-08-21 58 __attribute__((section("___ksymtab" sec "+" #sym), used)) \
ed13fc33f76303 Matthias Maennich 2019-09-06 59 __aligned(sizeof(void *)) \
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 60 = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
7290d58095712a Ard Biesheuvel 2018-08-21 61

:::::: The code at line 57 was first introduced by commit
:::::: 7290d58095712a89f845e1bca05334796dd49ed2 module: use relative references for __ksymtab entries

:::::: TO: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp