From: kernel test robot <lkp@intel.com>
To: Boqun Feng <boqun@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [boqun:rust-sync 9/12] include/linux/kconfig.h:43:75: error: expected string literal before numeric constant
Date: Wed, 06 May 2026 00:28:14 +0800 [thread overview]
Message-ID: <202605060008.cHdbvwtS-lkp@intel.com> (raw)
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
reply other threads:[~2026-05-05 16:29 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202605060008.cHdbvwtS-lkp@intel.com \
--to=lkp@intel.com \
--cc=boqun@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.