LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料

作者:史宁宁(snsn1984)

之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享。

网址:http://llvm.linuxfoundation.org

项目简介:

LLVMLinux Project Overview

This project aims to fully build the Linux kernel using Clang which is the C front end for the LLVM compiler infrastructure project. Together Clang and LLVM have many positive attributes and features which many developers and system integrators would like to take advantage of when developing and deploying the Linux Kernel as a part of their own projects.

The hope is that this project will help reduce duplicate work, as well as concentrate, and accelerate efforts around this subject matter in order to allow Linux Kernel developers, and system integrators to have the choice of a Clang compiled Linux kernel. The goal is for this project to be a testing/proving ground for these updates and to get patches that make this possible upstream to their respective projects.

The LLVMLinux project consolidates the work of the lll-project, the PAX team, and Mark Charlebois' work on the ARM kernel.

There have been several presentations and articles on this topic if you wish to learn more about the reasons for this project.

Currently the work is centred around the ARM, x86, x86_64, and MIPS architectures but contributions to support other architectures are welcome. Patches accepted!

Interested parties will be holding a Bi-weekly Google Hangout to discuss project status and goals.

最新进展情况,从新闻稿中可以看出:

Features You Won't Find In The Linux 4.9 Mainline Kernel
Written by Michael Larabel in Linux Kernel on 19 October 2016 at 07:18 AM EDT. 17 Comments

...

LLVM Clang Building - The mainline kernel still can't build cleanly under the LLVM Clang compiler. The LLVMLinux project slowed down a lot but hopefully developers will get back to working on this support in the not too distant future. 

...

新闻链接:http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.9-Stuff-Not-Mainline

至少到2016年10月19日,该新闻发布的时候,还无法正常支持主线的内核编译。同时,也号召有兴趣的朋友们积极参与该项目。

另外,该项目的邮件列表为: llvmlinux@lists.linuxfoundation.org.

时间: 2024-11-05 12:16:18

LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料的相关文章

LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码

作者:史宁宁(snsn1984) 自己收集了一些LLVM/Clang的代码,并且自己也在一点一点的写一些LLVM/Clang以及编译器的代码,在这里把这些代码库分享出来,欢迎大家交流探讨. 1.crange https://github.com/shining1984/crange 这是一个python写的调用libclang去定位和交叉检索C/C++源码的工具.这个工具不是我写的,我给fork过来了,方便自己加一些自己的代码. 2. libclang-examples https://gith

LLVM每日谈之二 LLVM IR

作者:snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构.传统的静态编译器分为三个阶段:前端.优化和后端. LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端.如果我们需要支持一种新的硬件设备,那我们只需要实现一个新的后端.而优化阶段因为是针对了统一的LLVM IR,所以它是一个通用的阶段,不论是支持新的编程语言,还是支持新的硬件设备,这里都不需要对优化阶段做修改.所以从这里可以看出LLVM IR的作用. LLVM

LLVM每日谈之二十四 Google的ClangMR

ClangMR的论文<Large-Scale Automated Refactoring Using ClangMR>:http://www.hyrumwright.org/papers/icsm2013.pdf ClangMR是Goolge的一个工具,严格的说,并不属于Clang家族,是属于基于Clang所构建的一个工具.Google秉承他们一贯的原则,在构建该工具并投入使用之后,将该工具的情况发了一篇论文<Large-Scale Automated Refactoring Using

LLVM每日谈之二十二 llvm-config工具的使用

作者:史宁宁(snsn1984) llvm-config作为LLVM的一个工具,是非常有用的,官方文档(http://llvm.org/docs/CommandGuide/llvm-config.html)关于它的介绍如下: llvm-config makes it easier to build applications that use LLVM. It can print the compiler flags, linker flags and object libraries neede

LLVM每日谈之十六 LLVM的学习感悟

这些总结并非我自己写的,而是摘自LLVM的版本比较老的文档中.因为老版本的文档已经鲜有人关注了,而这篇总结的非常好,到现在也很有用处,所以就把这部分内容贴出来了.这只是原文档的一部分. 原文档地址:http://llvm.org/releases/1.1/docs/Stacker.html 正文内容: Lessons I Learned About LLVM Everything's a Value! Although I knew that LLVM uses a Single Static

LLVM每日谈之十九 LLVM的第一本系统的书&amp;lt;Getting Started with LLVM Core Libraries&amp;gt;

作者:史宁宁(snsn1984) LLVM终于有了一本系统的书了--<Getting Started with LLVM Core Libraries>.这本书号称是LLVM的第一本书,但是据说日本早就有两本日文的关于LLVM的书,这个了解的不多.不过可以肯定的是,这本书是英文表述的第一本书. 这本书的覆盖范围很广,从简单的如何安装LLVM一直到各个部分的介绍,以及如何使用这些部分去创建自己的工具,都有所介绍.对于想使用LLVM去创建自己的工具的人,完全是够用的,而且是非常不错的一本书.这也是

LLVM每日谈之十五 LLVM自带的examples

 作者:snsn1984            在LLVM源码的目录下,有一个目录叫做examples,这个目录下边有几个LLVM的例子,初学者一般不会太关注这些例子,但是这些例子确实是精华中的精华,在LLVM的学习过程中不可避免的要对这些例子所涉及内容要精通.所以希望大家一定要对这些例子重视起来,它们都是经典中的经典.从我个人而言,从这些例子中学到了很多,文档说了很多都没能让人明白的东西,在这里,一个简单的例子就讲的很清楚了.         首先,要想执行这些例子,可以在cmake的时候加上

LLVM每日谈之七 Clang

作者:snsn1984         官方介绍Clang是LLVM native的一个面向C/C++/Objective-C的编译器,目标是要提供一个编译非常快的编译器.他们宣称在Debug模式下编译Objective-C比GCC快3倍.至于是否能比GCC快这么多,总有人去做对比,大家可以搜索下,好像确实快了些. Clang一般被说是LLVM的一个前端.关于前端的定义,大家可以从LLVM每日谈之二里面看到前端在整个LLVM体系中的位置.Clang当初的定位就是要做下一个十年中一个伟大的前端,这

LLVM每日谈之四 Pass初探

作者:snsn1984 LLVM 的Pass框架是LLVM系统的一个很重要的部分.每个Pass都是做优化或者转变的工作,LLVM的优化和转换工作就是由很多个Pass来一起完成的. 所以按照我的理解,Pass就是LLVM系统转化和优化的工作的一个节点,每个节点做一些工作,这些工作加起来就构成了LLVM整个系统的优化和转化.Pass架构这么做的话,可重用性非常好,你可以选择已有的一些Pass,自己去构建出自己想要的优化和转化效果.并且自己也可以重新写Pass去做自己想要的优化和转变,因为每个Pass