简介
LLVM是一个自由软件项目,它是一种编译器基础设施,以C++写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及“闲置时期”的最优化。
配置编译流程
1.配置编译环境
1)安装wget依赖工具。
yum install wget -y
2)升级GCC版本。
鲲鹏默认的GCC版本为4.8.5,编译llvm时候,需要不低于GCC5.1的版本。请参考https://www.huaweicloud.com/kunpeng/software/gcc.html对GCC版本进行升级
3)升级CMake版本。
配置要求CMake最低版本为3.4.3,请参考https://www.huaweicloud.com/kunpeng/software/cmake.html对CMake进行安装或者版本升级。
----结束
2.获取源码
获取“llvm-9.0.0”源码包。
cd /usr/local/src
mkdir llvm
cd llvm
wget http://releases.llvm.org/9.0.0/llvm-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/cfe-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/compiler-rt-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libcxx-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libcxxabi-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libunwind-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/lld-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/lldb-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/openmp-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/polly-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/clang-tools-extra-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/test-suite-9.0.0.src.tar.xz
3.编译和安装
1)解压软件包。
tar -xvf llvm-9.0.0.src.tar.xz
2)进入gcc的安装目录。
cd llvm-9.0.0.src
mkdir b
cd b
3)生成Makefile文件
cmake .. -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON
4)编译安装llvm。
“-j”参数可利用多核CPU加快编译速度,在本示例中,使用的是2核CPU,所以此处为“-j2”。
可通过下述命令查询CPU核数:
cat /proc/cpuinfo| grep "processor"| wc -l
make -j2
make install
----结束
4.运行和验证
1)查询安装的llvm工具。
输入llvm-然后按Tab键,回显信息如下,则表示llvm安装了如下工具。
llvm-addr2line llvm-config llvm-cxxmap llvm-elfabi llvm-lipo llvm-mt llvm-profdata llvm-size llvm-tblgen
llvm-ar llvm-cov llvm-diff llvm-exegesis llvm-lto llvm-ranlib llvm-split llvm-undname
llvm-as llvm-c-test llvm-dis llvm-extract llvm-lto2 llvm-objcopy llvm-rc llvm-stress llvm-xray
llvm-bcanalyzer llvm-cvtres llvm-dlltool llvm-jitlink llvm-mc llvm-objdump llvm-readelf llvm-strings
llvm-cat llvm-cxxdump llvm-dwarfdump llvm-lib llvm-mca llvm-opt-report llvm-readobj llvm-strip
llvm-cfi-verify llvm-cxxfilt llvm-dwp llvm-link llvm-modextract llvm-pdbutil llvm-rtdyld llvm-symbolizer
2)选择一个工具查看版本信息。
回显信息如下,则表示该工具安装成功,其他工具验证类似。
LLVM (http://llvm.org/):
LLVM version 9.0.0
Optimized build with assertions.
Default target: aarch64-unknown-linux-gnu
Host CPU: tsv110
----结束