0%

LLVM 环境搭建

背景

为了学习了解 LLVM 的代码,从其官方仓库中下载代码,然后进行配置,生成可执行文件,便于学习代码过程中调试使用。

编译环境

我们在 CPU 是 x86_64 ,操作系统为 Linux 的环境下编译 LLVM,具体版本信息如下:

  • 机器环境:x86_64
  • 操作系统:Ubuntu 20.04.2 LTS
  • LLVM:13.0.1

主要过程

下载代码

从LLVM 在GitHub上的代码仓下载:

1
git clone https://github.com/llvm/llvm-project.git

编译

llvm 编译比较简单,可以通过宏配置可选的部件(Clang等),设置编译类型和目标平台[2]。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

mkdir -p build
cd build

if [ ! -f bin/llvm-lto ]; then
CORE_NUM=$(nproc --all)
if [ -z "${CORE_NUM}" ]; then
CORE_NUM=1
fi

echo "Build llvm with" ${CORE_NUM} "cores"

cmake /mnt/Compiler/llvm-project/llvm \
-G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE="Debug" \
-DLLVM_TARGETS_TO_BUILD="X86;AArch64;BPF;Hexagon" \
-DLLVM_ENABLE_PROJECTS="clang" \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"

cmake --build .
else
echo "llvm has already been built"
fi

参考

  1. 虚拟机编译符号链接不允许

  2. Building LLVM