Linux 6.19启用Microsoft C扩展支持

Linux内核6.19已在主线Git中正式加入对Microsoft C扩展的支持。编译时统一启用-fms-extensions选项,这一改动由Linus Torvalds合并,过程没有遭到反对,意味着此前多次未能推进的尝试终于实现。

Microsoft C扩展最初由Visual C/C++编译器支持,后被GCC与LLVM/Clang作为可选功能提供。它允许在结构体或联合体中采用非标准写法,便于移植或复用微软生态中的接口与定义。在Linux6.19中,核心作用是支持匿名嵌入带标签的结构体或联合体,从而在保持类型信息的同时简化访问方式。开发者认为,这种写法能够改善代码的可维护性和可读性。

这一功能已在部分子系统试点使用,其中Btrfs文件系统是早期采用者。官方示例展示了如何借助该扩展重构结构体定义,使字段访问更直接,同时保持原有语义。这为其他子系统的后续跟进提供了参考。

相关技术细节与代码调整已公开在Kbuild合并提交中,开发者可在内核源码仓库查阅。随着Linux6.19在调度、加密性能和电源管理方面也有改进,启用Microsoft C扩展被视为推动内核代码风格演进的重要一步。