簡(jiǎn)介
LLVM是一個(gè)自由軟件項(xiàng)目,它是一種編譯器基礎(chǔ)設(shè)施,以C++寫成,包含一系列模塊化的編譯器組件和工具鏈,用來(lái)開發(fā)編譯器前端和后端。它是為了任意一種編程語(yǔ)言而寫成的程序,利用虛擬技術(shù)創(chuàng)造出編譯時(shí)期、鏈接時(shí)期、運(yùn)行時(shí)期以及“閑置時(shí)期”的最優(yōu)化。
配置編譯流程
1.配置編譯環(huán)境
1)安裝wget依賴工具。
yum install wget -y
2)升級(jí)GCC版本。
鯤鵬默認(rèn)的GCC版本為4.8.5,編譯llvm時(shí)候,需要不低于GCC5.1的版本。請(qǐng)參考http://m.cqfng.cn/kunpeng/software/gcc.html對(duì)GCC版本進(jìn)行升級(jí)
3)升級(jí)CMake版本。
配置要求CMake最低版本為3.4.3,請(qǐng)參考http://m.cqfng.cn/kunpeng/software/cmake.html對(duì)CMake進(jìn)行安裝或者版本升級(jí)。
----結(jié)束
2.獲取源碼
獲取“l(fā)lvm-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)進(jìn)入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”參數(shù)可利用多核CPU加快編譯速度,在本示例中,使用的是2核CPU,所以此處為“-j2”。
可通過(guò)下述命令查詢CPU核數(shù):
cat /proc/cpuinfo| grep "processor"| wc -l
make -j2
make install
----結(jié)束
4.運(yùn)行和驗(yàn)證
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)選擇一個(gè)工具查看版本信息。
回顯信息如下,則表示該工具安裝成功,其他工具驗(yàn)證類似。
LLVM (http://llvm.org/):
LLVM version 9.0.0
Optimized build with assertions.
Default target: aarch64-unknown-linux-gnu
Host CPU: tsv110
----結(jié)束
?