在 LLVM Clang 被越来越多地开发人员和组织用于构建主线 Linux 内核的同时,大家似乎忘记了,作为对长期以来占主导地位的 GCC 编译器目标的补充支持,英特尔的 ICC 编译器也能够用于构建 Linux 内核(尽管没有被广泛使用)。鉴于此,内核开发人员现在正在考虑删除对 ICC 编译器的支持。
Linux 开发人员 Masahiro Yamada 提出了放弃英特尔 ICC 编译器支持的想法。他在邮件中指出:
include/linux/compiler-intel.h 在过去 3 年没有更新。
我们经常忘记构建内核的第三个 C 编译器。
例如,commit a0a12c3ed057 ("asm goto: eradicate CC_HAS_ASM_GOTO") 只提到了 GCC 和 Clang。
init/Kconfig 定义了 CC_IS_GCC 和 CC_IS_CLANG 但没有定义 CC_IS_ICC,却没有人报告任何问题。
我猜对英特尔编译器的支持已经 broken,而且没有人关心它。
对此,Linus Torvalds 做出了回应并支持称:
Ack,我认为没有人真正使用过 icc。
我不记得曾听到过关于 icc 问题的任何消息,我不认为这是因为它在 emulating gcc 方面“特别”好,所以没有人遇到过任何问题。
此外,其他内核开发人员也表达了对这一提议的支持。Phoronix 指出,这个拟议的补丁将致使放弃对主线内核的 ICC 支持,并释放目前用于 ICC 支持的大约 300 行代码。值得一提的是,随着英特尔的 ICC 编译器从原来的专有代码库转向基于 LLVM 的模式,新的 ICC 编译器最终可能会使用 Clang 路径构建内核。
更多详情可查看邮件列表。