当前位置:  开发笔记 > 前端 > 正文

是否可以用gcc以外的东西编译Linux内核

如何解决《是否可以用gcc以外的东西编译Linux内核》经验,为你挑选了6个好方法。

我想知道是否有人设法使用除gcc之外的其他编译器来编译Linux内核.或者,如果有人尝试过?问题可能看起来很愚蠢或者是学术性的,但是当我想到答案时它就出现了:C++ int操作是否在mips体系结构上是原子的

似乎某些操作的原子性不仅取决于cpu体系结构,还取决于使用的编译器.所以,我想知道在Linux世界中是否存在除gcc之外的一些编译器.



1> unwind..:

Linux明确依赖于某些gcc扩展,因此在这种情况下,任何其他编译器必须与所需的扩展兼容.

这不是"不",因为单独的编译器供应商/开发人员当然不可能跟踪gcc的扩展,只是一个可以帮助您搜索的数据点.



2> dmckee..:

在某些时候,tcc将处理并运行 linux内核源代码.我猜,那将是肯定的.

::帽子提示在评论中流行.::


http://bellard.org/tcc/tccboot.html"TCCBOOT是一个能够直接从其*源代码*编译和启动Linux内核的启动加载程序." 是的,tcc能够在某些时候构建一个可运行的Linux内核.

3> CesarB..:

该LLVM开发者正试图与编译它铛.使用clang编译Linux内核的元错误有更多细节(该元错误的依赖关系树显示了似乎有多少).



4> Joachim Saue..:

已经有一些努力(和补丁)来编译2.6内核的早期版本icc.


最近,(2009年2月25日)http://www.linuxjournal.com/content/linuxdna-supercharges-linux-intel-cc-compiler

5> wash..:

对.我做到了这一点.请参阅[cfe-dev] Clang构建一个可用的Linux内核(使用SMP启动到RL5,网络和X,自主机).



6> Tim Post..:

IBM的编译器能够在一些Linux版本之前完成它,但我现在不确定,也不确定IBM如何按照指示优化内核.我所知道的是,他们得到了它.

由于Linux是自托管(具有自己的libc)并且从一开始就使用gcc(和gcc交叉编译器)开发,因此使用其他任何东西都是愚蠢的.

我认为主要是,使用预处理器宏和指示优化是最好的障碍(甚至没有脱离天然气),因为GNU已经基本上写了上面的书,并扩展了它.除此之外,Linux调整其优化以使用gcc,例如,不要在内核中使用"volatile"而没有充分理由.使用内联并实际让编译器同意是另一个挑战.

Linus是第一个将GCC称为&*#$ hole的人,这使得编译器更好.

这就是为什么我们有很好的GNU/Linux辩论.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有