* [boqun:rust-sync 9/12] include/linux/kconfig.h:43:75: error: expected string literal before numeric constant
@ 2026-05-05 16:28 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-05 16:28 UTC (permalink / raw)
To: Boqun Feng; +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rust-sync
head: 082cc4c201e4450ff9456c9bd093fd70d103595a
commit: 40c3e04e2248c0e5d78d23e6767a1c58d5678eac [9/12] preempt: x86: Avoid tracking NMI separately when 64BIT=y
config: i386-allnoconfig (https://download.01.org/0day-ci/archive/20260506/202605060008.cHdbvwtS-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260506/202605060008.cHdbvwtS-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605060008.cHdbvwtS-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from arch/x86/include/asm/preempt.h:5,
from include/linux/preempt.h:92,
from include/linux/spinlock.h:56,
from include/linux/swait.h:7,
from include/linux/completion.h:12,
from include/linux/crypto.h:15,
from arch/x86/kernel/asm-offsets.c:9:
arch/x86/include/asm/preempt.h: In function '__preempt_count_dec_and_test':
>> include/linux/kconfig.h:43:75: error: expected string literal before numeric constant
43 | #define ____is_defined(arg1_or_junk) __take_second_arg(arg1_or_junk 1, 0)
| ^
arch/x86/include/asm/rmwcc.h:12:30: note: in definition of macro '__GEN_RMWcc'
12 | asm_inline volatile (fullop \
| ^~~~~~
include/linux/args.h:25:24: note: in expansion of macro 'GEN_UNARY_RMWcc_4'
25 | #define __CONCAT(a, b) a ## b
| ^
arch/x86/include/asm/preempt.h:126:16: note: in expansion of macro 'GEN_UNARY_RMWcc'
126 | return GEN_UNARY_RMWcc(IS_ENABLED(CONFIG_PREEMPT_LONG) ? "decq":
| ^~~~~~~~~~~~~~~
include/linux/kconfig.h:26:41: note: in expansion of macro '__take_second_arg'
26 | #define ____or(arg1_or_junk, y) __take_second_arg(arg1_or_junk 1, y)
| ^~~~~~~~~~~~~~~~~
include/linux/kconfig.h:25:41: note: in expansion of macro '____or'
25 | #define ___or(x, y) ____or(__ARG_PLACEHOLDER_##x, y)
| ^~~~~~
include/linux/kconfig.h:24:41: note: in expansion of macro '___or'
24 | #define __or(x, y) ___or(x, y)
| ^~~~~
include/linux/kconfig.h:73:28: note: in expansion of macro '__or'
73 | #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
| ^~~~
include/linux/kconfig.h:43:41: note: in expansion of macro '__take_second_arg'
43 | #define ____is_defined(arg1_or_junk) __take_second_arg(arg1_or_junk 1, 0)
| ^~~~~~~~~~~~~~~~~
include/linux/kconfig.h:42:41: note: in expansion of macro '____is_defined'
42 | #define ___is_defined(val) ____is_defined(__ARG_PLACEHOLDER_##val)
| ^~~~~~~~~~~~~~
include/linux/kconfig.h:41:41: note: in expansion of macro '___is_defined'
41 | #define __is_defined(x) ___is_defined(x)
| ^~~~~~~~~~~~~
include/linux/kconfig.h:57:27: note: in expansion of macro '__is_defined'
57 | #define IS_MODULE(option) __is_defined(option##_MODULE)
| ^~~~~~~~~~~~
include/linux/kconfig.h:73:53: note: in expansion of macro 'IS_MODULE'
73 | #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
| ^~~~~~~~~
arch/x86/include/asm/preempt.h:126:32: note: in expansion of macro 'IS_ENABLED'
126 | return GEN_UNARY_RMWcc(IS_ENABLED(CONFIG_PREEMPT_LONG) ? "decq":
| ^~~~~~~~~~
make[3]: *** [scripts/Makefile.build:184: arch/x86/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1373: prepare0] Error 2
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +43 include/linux/kconfig.h
5e8754fd80b0a59 Masahiro Yamada 2016-06-14 27
2a11c8ea20bf850 Michal Marek 2011-07-20 28 /*
69349c2dc01c489 Paul Gortmaker 2012-04-12 29 * Helper macros to use CONFIG_ options in C/CPP expressions. Note that
2a11c8ea20bf850 Michal Marek 2011-07-20 30 * these only work with boolean and tristate options.
2a11c8ea20bf850 Michal Marek 2011-07-20 31 */
2a11c8ea20bf850 Michal Marek 2011-07-20 32
69349c2dc01c489 Paul Gortmaker 2012-04-12 33 /*
69349c2dc01c489 Paul Gortmaker 2012-04-12 34 * Getting something that works in C and CPP for an arg that may or may
69349c2dc01c489 Paul Gortmaker 2012-04-12 35 * not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1"
69349c2dc01c489 Paul Gortmaker 2012-04-12 36 * we match on the placeholder define, insert the "0," for arg1 and generate
69349c2dc01c489 Paul Gortmaker 2012-04-12 37 * the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one).
69349c2dc01c489 Paul Gortmaker 2012-04-12 38 * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when
69349c2dc01c489 Paul Gortmaker 2012-04-12 39 * the last step cherry picks the 2nd arg, we get a zero.
69349c2dc01c489 Paul Gortmaker 2012-04-12 40 */
4f920843d248946 Masahiro Yamada 2016-06-14 41 #define __is_defined(x) ___is_defined(x)
4f920843d248946 Masahiro Yamada 2016-06-14 42 #define ___is_defined(val) ____is_defined(__ARG_PLACEHOLDER_##val)
4f920843d248946 Masahiro Yamada 2016-06-14 @43 #define ____is_defined(arg1_or_junk) __take_second_arg(arg1_or_junk 1, 0)
69349c2dc01c489 Paul Gortmaker 2012-04-12 44
:::::: The code at line 43 was first introduced by commit
:::::: 4f920843d248946545415c1bf6120942048708ed kconfig.h: use __is_defined() to check if MODULE is defined
:::::: TO: Masahiro Yamada <yamada.masahiro@socionext.com>
:::::: CC: Michal Marek <mmarek@suse.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-05 16:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-05 16:28 [boqun:rust-sync 9/12] include/linux/kconfig.h:43:75: error: expected string literal before numeric constant kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.