- 论坛徽章:
- 0
|
自问自答型
问题:
编译linux内核出错:
directives may not be used inside a macro argument
出错文件为meminfo.c 349行。
处理:找到meminfo.c
对应的行为 #ifdef 形式。初步怀疑是编译器语法不支持。
原来的:
K(global_page_state(NR_ANON_PAGES) ---------这里编译器不认,认为宏没有写完
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+ global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
HPAGE_PMD_NR
#endif
),
修改后的:语句罗嗦一点,不过意思一样的。
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
K(global_page_state(NR_ANON_PAGES)
+ global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
HPAGE_PMD_NR
),
#else
K(global_page_state(NR_ANON_PAGES)),
#endif
问题解决,编译通过 |
|