Binutils 包含匯編器、鏈接器以及其他用于處理目標(biāo)文件的工具。
安裝 Binutils
解壓軟件包:
cd /sources
tar xf binutils-2.37.tar.xz
cd binutils-2.37
進(jìn)行簡單測試,確認(rèn)偽終端 (PTY) 在 chroot 環(huán)境中能正常工作:
expect -c "spawn ls"
如果輸出不是上面這樣,就說明環(huán)境沒有為 PTY 的正常工作設(shè)置好。在運(yùn)行 Binutils 和 GCC 的測試套件前必須解決這個(gè)問題。
上游開發(fā)者提供了一個(gè)補(bǔ)丁,它能修復(fù)在構(gòu)建一些軟件包時(shí)出現(xiàn)的問題。應(yīng)用該補(bǔ)?。?/p>
patch -Np1 -i ../binutils-2.37-upstream_fix-1.patch
構(gòu)建系統(tǒng)中的一處錯(cuò)誤導(dǎo)致軟件包附帶的 man 頁面為空。繞過這個(gè)問題并刪除附帶的 man 頁面,這樣 man 頁面就會(huì)被正確地重新生成:
sed -i '63d' etc/texi2pod.pl
find -name *.1 -delete
Binutils 文檔推薦在一個(gè)專用的構(gòu)建目錄中構(gòu)建 Binutils:
mkdir -v build
cd build
準(zhǔn)備編譯 Binutils:
../configure --prefix=/usr
--enable-gold
--enable-ld=default
--enable-plugins
--enable-shared
--disable-werror
--enable-64-bit-bfd
--with-system-zlib
編譯該軟件包:
make tooldir=/usr
測試編譯結(jié)果:
make -k check
已知四項(xiàng)和 zlib 相關(guān)的測試可能失敗。
安裝該軟件包:
make tooldir=/usr install -j1
刪除無用的靜態(tài)庫:
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
安裝完成后清理工作:
cd ../..
rm -rf binutils-2.37
本次分享到此結(jié)束啦~
如果覺得文章對(duì)你有幫助,點(diǎn)贊、收藏、關(guān)注、評(píng)論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動(dòng)力。
?? 技術(shù)交流可以 關(guān)注公眾號(hào):Lucifer三思而后行 ??
本文摘自 :https://blog.51cto.com/l