LLVM 项目博客

LLVM 项目新闻和来自实战的细节

LLVM Debian/Ubuntu nightly packages


为了方便测试并改善 LLVM 工具链的部署,我们很高兴地 发布 LLVM Debian/Ubuntu nightly packages。继续阅读以了解其工作原理以及我们正在构建的内容。

这些软件包提供了 LLVM、Clang、compiler-rt、polly 和 LLDB。
它们针对 Debian
  • Wheezy (未来稳定版)
  • Unstable (不稳定版)
以及 Ubuntu
  • Precise (12.04)
  • Quantal (12.10)
  • Raring (13.04)
 目前,amd64 和 i386 架构得到支持。

例如,安装 clang 3.3 的 nightly 版本就像以下步骤一样简单:
echo "deb https://llvm.net.cn/apt/wheezy/ llvm-toolchain-wheezy main"> /etc/apt/sources.list.d/llvm.list
apt-get update
apt-get install clang-3.3

软件包每天自动构建两次,针对每个架构和操作系统在干净的 chroot 环境中进行构建。构建工作由 Jenkins 实例 完成,该实例由 IRILL 托管并推动 LLVM 基础设施。

 

仓库

Debian

wheezy (当前测试版)
deb https://llvm.net.cn/apt/wheezy/ llvm-toolchain-wheezy main
deb-src https://llvm.net.cn/apt/wheezy/ llvm-toolchain-wheezy main

sid (不稳定版)
deb https://llvm.net.cn/apt/unstable/ llvm-toolchain main
deb-src https://llvm.net.cn/apt/unstable/ llvm-toolchain main

Ubuntu

Precise (12.04)
deb https://llvm.net.cn/apt/precise/ llvm-toolchain-precise main
deb-src https://llvm.net.cn/apt/precise/ llvm-toolchain-precise main
 
Quantal (12.10)

deb https://llvm.net.cn/apt/quantal/ llvm-toolchain-quantal main
deb-src https://llvm.net.cn/apt/quantal/ llvm-toolchain-quantal main
 
Raring (13.04)
deb https://llvm.net.cn/apt/raring/ llvm-toolchain-raring main
deb-src https://llvm.net.cn/apt/raring/ llvm-toolchain-raring main

 

安装

以下命令将安装 llvm-toolchain 提供的所有软件包

apt-get install clang-3.3 clang-3.3-doc libclang-common-dev libclang-dev libclang1 libclang1-dbg libllvm-3.3-ocaml-dev libllvm3.3 libllvm3.3-dbg lldb-3.3 llvm-3.3 llvm-3.3-dev llvm-3.3-doc llvm-3.3-examples llvm-3.3-runtime

 

技术流程

每天两次,每个 jenkins 任务都会签出构建软件包所需的 debian/ 目录。该仓库位于 Debian 托管基础设施上: http://anonscm.debian.org/viewvc/pkg-llvm/llvm-toolchain/branches/。在 llvm-toolchain-*-source 中,将执行以下任务
  • 签出上游源代码
  • 创建 tarballs。它们被命名为
    • llvm-toolchain_X.Y~svn123456.orig-lldb.tar.bz2
    • llvm-toolchain_X.Y~svn123456.orig-compiler-rt.tar.bz2
    • llvm-toolchain_X.Y~svn123456.orig.tar.bz2
    • llvm-toolchain_X.Y~svn123456.orig-clang.tar.bz2
    • llvm-toolchain_X.Y~svn123456.orig-polly.tar.bz2
  • 创建 Debian .dsc 软件包描述
  • 启动 jenkins 任务 llvm-toolchain-X-binary
然后,任务 llvm-toolchain-X-binary
  • 使用 cowbuilder 创建 chroot 或更新已存在的 chroot
  • 如果需要,安装 libisl >=0.11 (用于 polly)
  • 构建所有软件包
  • 启动 lintian,Debian 静态分析器
  • 将结果发布到 LLVM 仓库
请注意,一些 补丁 应用于 LLVM tarballs (并应很快合并到上游)。

未来

这种多功能的基础设施允许一些更有趣的功能,例如
  • 自动在整个代码上启动 scan-build
  • LLVM/Clang 的完全自举
  • 最新版本的代码覆盖率