上游 Linux 开发者反对
WireGuard 作者 Jason A. Donenfeld 上周向Linux 内核提交了一个补丁,他建议在使用新发布的 GCC 10 编译器或更高的版本时,将内核的默认编译优化级别由 -O2 设置为-O3。 Jason 解释道,GCC 10 对-O2 进行了改进,以便在使用-flto 时缩短编译时间,不过这似乎是以牺牲性能为代价来实现的。而现在的-O3 优化不存在和 10 年前同样的 bug,所以当 gcc >= 10 时,他提交的补丁会将 Linux 内核的编译优化默认设置为 -O3 级别。 对于这个提交,部分开发者表示有兴趣支持 -O3 优化级别的子集功能,甚至探索-Og 级别的优化,并努力缩短构建内核花费的时间,以便于测试。 不过总体看来,将内核默认编译优化级别设置为 -O3 的提案遭到了广泛的反对,因为这不一定会让内核变得更快,反而有可能会引入因优化而导致出现的特殊特性,甚至会产生让代码变得更慢的地方。 Linus Torvalds 也进行了表态,他不认为这是一个明智的想法,尤其是 GCC -O3 级别的优化有时会导致出现问题。 GCC 开发者 Richard Bie...
