安裝帶有g(shù)old-plugin的LLVM

前言

眾所周知,C語言編譯器中础钠,Clang比GCC編譯速度更快恰力,編譯產(chǎn)出更小,出錯(cuò)提示更友好旗吁,所以能用Clang當(dāng)然就會(huì)用Clang踩萎。但是裝Clang還有一堆環(huán)境問題讓人頭疼,如果不是要用AFLGo很钓,我也懶得把帶有g(shù)old-plugin的LLVM這一套東西裝起來香府。踩了一些坑董栽,最終也算裝成了。網(wǎng)上的教程千奇百怪企孩,而且大部分比較老锭碳,最后我探索了一個(gè)比較簡潔的安裝方式,這里把安裝的過程記錄一下柠硕,方便日后回憶工禾。
我使用的是系統(tǒng)ubuntu 16.04 LTS,使用的是源碼安裝LLVM 6.0.0蝗柔。

安裝

在安裝前先保證系統(tǒng)中有make,cmake,ninja(一個(gè)代替make的編譯工具),python2.7,bitnutils(這個(gè)就是我們的gold-plugin)闻葵。

apt-get install make cmake ninja-build python2.7 binutils-gold binutils-dev

然后通過網(wǎng)站 http://releases.llvm.org/download.html 下載所需要的包(為什么不git或者svn下載?因?yàn)槲疫@下載太慢癣丧,用瀏覽器會(huì)快一些)槽畔。所需的包有(這里以6.0.0為例,如果是其他版本就在對(duì)應(yīng)版本下下載)胁编,:

cfe-6.0.0.src                libcxx-6.0.0.src
clang-tools-extra-6.0.0.src  libcxxabi-6.0.0.src
compiler-rt-6.0.0.src        llvm-6.0.0.src

PS:其實(shí)libcxx和libcxxabi不用也可以用AFL的llvm模式厢钧,這里順便裝了而已。

下下來的包是tar.xz的兩層壓縮包嬉橙,通過xz和tar解壓($DOWNLOAD是包的位置):

cd $DOWNLOAD
xz -d 六個(gè)包
tar -xvf 六個(gè)包

然后把解壓的六個(gè)包放在一個(gè)文件夾中:

sudo mkdir src
for i in *.src; do sudo mv $i src/$i; done
cd src/

接著把目錄變得漂亮一些早直,為編譯做準(zhǔn)備:

sudo mv cfe-6.0.0.src clang
sudo mv clang llvm-6.0.0.src/tools

sudo mv clang-tools-extra-6.0.0.src extra
sudo mv extra/ llvm-6.0.0.src/tools/clang/

sudo mv compiler-rt-6.0.0.src compiler-rt
sudo mv compiler-rt llvm-6.0.0.src/projects/

sudo mv libcxx-6.0.0.src libcxx
sudo mv libcxx llvm-6.0.0.src/projects/

sudo mv libcxxabi-6.0.0.src libcxxabi
sudo mv libcxxabi llvm-6.0.0.src/projects/

然后就可以開始cmake了,通過-G來指定ninja作為生成器市框。其中霞扬,-DLLVM_BINUTILS_INCDIR 是為了將BINUTILS的頭文件引入,也就是我們的gold-plugin枫振。喻圃。

sudo mkdir build-6.0
cd build-6.0/
sudo cmake -G Ninja -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_BINUTILS_INCDIR=/usr/include ../llvm-6.0.0.src

然后開始編譯,這個(gè)編譯期間可能會(huì)占用大量內(nèi)存粪滤,虛擬機(jī)不一定能成功編譯斧拍,請(qǐng)使用ninja -j2之類的語句來限定編譯的作業(yè)數(shù)。我的電腦8G內(nèi)存杖小,跑起來還是很容易內(nèi)存爆炸肆汹。

sudo ninja
sudo ninja install

然后就安裝結(jié)束了,查看一下版本看看是否安裝成功即可予权。

clang --version

還有一件事昂勉,安裝的時(shí)候如果沒有設(shè)置 -DCMAKE_INSTALL_PREFIX 屬性的話,會(huì)默認(rèn)在usr/local下install伟件。所以為了把諸如LLVMgold.so文件變?yōu)槿值模枰獙⑾鄳?yīng)的文件復(fù)制到usr/lib下议经。

sudo mkdir /usr/lib/bfd-plugins
sudo cp /usr/local/lib/libLTO.so /usr/lib/bfd-plugins
sudo cp /usr/local/lib/LLVMgold.so /usr/lib/bfd-plugins
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末斧账,一起剝皮案震驚了整個(gè)濱河市谴返,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咧织,老刑警劉巖嗓袱,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異习绢,居然都是意外死亡渠抹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門闪萄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梧却,“玉大人,你說我怎么就攤上這事败去》藕剑” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵圆裕,是天一觀的道長广鳍。 經(jīng)常有香客問我,道長吓妆,這世上最難降的妖魔是什么赊时? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮行拢,結(jié)果婚禮上祖秒,老公的妹妹穿的比我還像新娘。我一直安慰自己剂陡,他們只是感情好狈涮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸭栖,像睡著了一般歌馍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晕鹊,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天松却,我揣著相機(jī)與錄音,去河邊找鬼溅话。 笑死晓锻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的飞几。 我是一名探鬼主播砚哆,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼屑墨!你這毒婦竟也來了躁锁?” 一聲冷哼從身側(cè)響起纷铣,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎战转,沒想到半個(gè)月后搜立,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡槐秧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年啄踊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刁标。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颠通,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出命雀,到底是詐尸還是另有隱情蒜哀,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布吏砂,位于F島的核電站撵儿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏狐血。R本人自食惡果不足惜淀歇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匈织。 院中可真熱鬧浪默,春花似錦、人聲如沸缀匕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乡小。三九已至阔加,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間满钟,已是汗流浹背胜榔。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湃番,地道東北人夭织。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像吠撮,于是被迫代替她去往敵國和親尊惰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容