當(dāng)前位置:首頁(yè) > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

Linux From Scratch(LFS11.0)構(gòu)建 LFS 系統(tǒng) - Binutils-2.37
2021-10-08 17:33:30

Binutils 包含匯編器、鏈接器以及其他用于處理目標(biāo)文件的工具。

安裝 Binutils

解壓軟件包:

cd /sources
tar xf binutils-2.37.tar.xz
cd binutils-2.37


進(jìn)行簡(jiǎn)單測(cè)試,確認(rèn)偽終端 (PTY) 在 chroot 環(huán)境中能正常工作:

expect -c "spawn ls"

Linux From Scratch(LFS11.0)構(gòu)建 LFS 系統(tǒng) - Binutils-2.37_linux

如果輸出不是上面這樣,就說(shuō)明環(huán)境沒(méi)有為 PTY 的正常工作設(shè)置好。在運(yùn)行 Binutils 和 GCC 的測(cè)試套件前必須解決這個(gè)問(wèn)題。

上游開(kāi)發(fā)者提供了一個(gè)補(bǔ)丁,它能修復(fù)在構(gòu)建一些軟件包時(shí)出現(xiàn)的問(wèn)題。應(yīng)用該補(bǔ)?。?/p>

patch -Np1 -i ../binutils-2.37-upstream_fix-1.patch

構(gòu)建系統(tǒng)中的一處錯(cuò)誤導(dǎo)致軟件包附帶的 man 頁(yè)面為空。繞過(guò)這個(gè)問(wèn)題并刪除附帶的 man 頁(yè)面,這樣 man 頁(yè)面就會(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

測(cè)試編譯結(jié)果:

make -k check

已知四項(xiàng)和 zlib 相關(guān)的測(cè)試可能失敗。

安裝該軟件包:

make tooldir=/usr install -j1

刪除無(wú)用的靜態(tài)庫(kù):

rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a

安裝完成后清理工作:

cd ../..
rm -rf binutils-2.37



本次分享到此結(jié)束啦~

如果覺(jué)得文章對(duì)你有幫助,點(diǎn)贊、收藏、關(guān)注、評(píng)論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動(dòng)力。

?? 技術(shù)交流可以 關(guān)注公眾號(hào):Lucifer三思而后行 ??

本文摘自 :https://blog.51cto.com/l

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >