LLVM Debian/Ubuntu nightly packages
为了方便测试并改善 LLVM 工具链的部署,我们很高兴地 发布 LLVM Debian/Ubuntu nightly packages。继续阅读以了解其工作原理以及我们正在构建的内容。
这些软件包提供了 LLVM、Clang、compiler-rt、polly 和 LLDB。
它们针对 Debian
- Wheezy (未来稳定版)
- Unstable (不稳定版)
- Precise (12.04)
- Quantal (12.10)
- Raring (13.04)
例如,安装 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 (当前测试版)
sid (不稳定版)
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
- 使用 cowbuilder 创建 chroot 或更新已存在的 chroot
- 如果需要,安装 libisl >=0.11 (用于 polly)
- 构建所有软件包
- 启动 lintian,Debian 静态分析器
- 将结果发布到 LLVM 仓库
未来
这种多功能的基础设施允许一些更有趣的功能,例如- 自动在整个代码上启动 scan-build
- LLVM/Clang 的完全自举
- 最新版本的代码覆盖率