日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.2 工具链技术备注...

發布時間:2024/1/17 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.2 工具链技术备注... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ?本節解釋總體構建方法之中的某些基本原理和技術細節。并不需要立即理解本節中的所有問題。在進行實際構建的過程中,絕大部分的信息將會變得愈加清晰。在該過程中可隨時查閱本小節的內容。

第五章的總體目標是生成一個臨時的系統,它包含一個已知的較好工具集,該工具集可與宿主系統分離。通過使用 chroot,其余各章中的命令將被包含在此環境中,以保證目標 LFS 系統能夠潔凈且無故障地生成。該構建過程的設計就是為了使得新讀者有最少的風險,同時還能有最好的指導價值。

注意

在繼續之前,請留意工作平臺的名稱,它通常稱作目標系統三段式名稱。目標系統三段式名稱可通過運行腳本 config.guess 簡單獲得,許多軟件的源碼包都附帶有該腳本(譯者注:目標系統三段式名稱描述了代碼運行的平臺,是GNU 構建系統中的一個核心概念,形如 i686-pc-gnu-linux。它包含三個字段:CPU家族/型號的名稱(如 i686)、供應商(pc)和操作系統名稱(如 gnu-linux)。更詳細的信息請參閱 http://wiki.osdev.org/Target_Triplet)。解壓 Binutils 源碼包,執行其中的腳本:./config.guess 并查看其輸出。例如,對于一個現代的 32 位英特爾處理器,其輸出很可能為 i686-pc-linux-gnu

還請留意平臺的動態鏈接器的名稱,它通常被稱為動態加載器(不要與 Binutils 中的標準鏈接器 ld 混淆)。該動態鏈接器由 Glibc 提供,它尋找并加載程序所需的共享庫,為程序運行作準備,并運行它。對于 32 位英特爾的機器,動態鏈接器的名稱為 ld-linux.so.2。判斷動態鏈接器的一個可靠方法是檢查宿主系統中的任意一個二進制文件,執行:readelf -l <二進制文件名> | grep interpreter 且查看其輸出。可在 Glibc 源碼樹的根目錄下的 shlib-versions 文件中找到所有平臺的權威參考。

下面是第五章構建方法的幾個關鍵技術點:

  • 通過改變 LFS_TGT 變量的目標系統三段式中的 “供應商” 字段,從而稍微調整工作平臺的名稱,以保證第一遍構建 Binutils 和 GCC 時能夠生成兼容的交叉鏈接器和交叉編譯器。此處的交叉鏈接器和交叉編譯器生成的二進制文件與當前的硬件兼容,而不是用于其它的硬件架構。

  • 臨時庫經交叉編譯獲得。由于交叉編譯原本就不應該依賴于宿主系統,因此,通過降低宿主系統的頭文件或庫進入新工具的可能性,該方法可去除目標系統的可能污染。交叉編譯的方式,還可以在 64 位硬件平臺上同時構建出 32 位和 64 位庫。

  • 謹慎操作 GCC 源碼,以告訴編譯器將使用哪個目標系統動態鏈接器。

Binutils 是首個安裝的包,這是因為執行 GCC 和 Glibc 的 configure 時都將進行有關匯編器和鏈接器的多項特性測試,以判斷允許或禁用哪些軟件特性。其重要性可能更甚于最初的意識。對 GCC 或 Glibc 的錯誤配置可能導致工具鏈出現難以捉摸的問題,可能直到整個構建過程接近尾聲時才會顯現出這些問題。通常情況下,一次測試套件失敗可在你進行太多其它工作前暴露出該錯誤。

Binutils 將其匯編器和鏈接器安裝在兩個位置,即 /tools/bin 和 /tools/$LFS_TGT/bin。一個位置的工具是硬鏈接到另一個位置的。鏈接器的一個重要方面是它的庫搜索順序。可給 ld 傳遞參數 --verbose 獲得詳細信息。如,ld --verbose | grep SEARCH 可得到當前的搜索路徑及其順序。通過編譯一個模擬程序并向鏈接器傳遞 --verbose 開關,可顯示 ld 都鏈接了哪些文件。例如,gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded 將顯示鏈接過程中成功打開的所有文件。

下一個安裝的包是 GCC。下面是運行 GCC 的 configure 的輸出的一個例子:

checking what assembler to use... /tools/i686-lfs-linux-gnu/bin/as checking what linker to use... /tools/i686-lfs-linux-gnu/bin/ld

基于前述原因,這很重要。它還說明了 GCC 的配置腳本并不會搜索 PATH 目錄來尋找使用什么工具。不過,在 gcc 自身的實際運行中,并不需要使用同樣的搜索路徑。運行:gcc -print-prog-name=ld 可獲知 gcc 使用是何種標準鏈接器(LCTT 譯注:gcc -print-prog-name 這個命令是為了顯示 gcc 使用的某些內部工具的絕對路徑,但事實上,ld 并不是 GCC 的內部工具,因此這條命令實際上沒什么用)。

在編譯模擬程序時,向 gcc 傳遞命令行選項 -v 可獲得詳細信息。例如,gcc -v dummy.c 將顯示預處理器、編譯和匯編階段的詳細信息,包括 gcc 的 include 搜索路徑及其順序。

下一個安裝的包是經過凈化的 Linux API 頭文件。這些頭文件可使得標準 C 庫(Glibc)與 Linux 內核提供的特性進行交行交互。

下一個安裝的包是 Glibc。構建 Glibc 時,最重要的考量是編譯器、二進制工具和內核頭文件。由于 Glibc 總是使用傳遞給它的配置腳本的 --host 參數有關的編譯器,如,在我們這個場景中是 i686-lfs-linux-gnu-gcc,因此編譯器通常不是一個問題。二進制工具和內核頭文件可能會更復雜一些。因此,請謹慎行事并利用可用的配置開關以強制使用正確的選擇。configure 運行完畢,目錄 glibc-build 下的文件 config.make 包含有所有的重要細節。需要注意的是,CC="i686-lfs-gnu-gcc" 用來控制使用哪個二進制工具,-nostdinc 和 -isystem 標志用來控制編譯器的 include 搜索路徑。這些條目強調了 Glibc 包的一個重要方面,即其構建機制是非常自給自足的,通常并不依賴默工具鏈的默認設置。

在第二遍編譯 Binutils 過程中,我們能夠利用配置開關 --with-lib-path 來控制 ld 的庫搜索路徑。

第二遍編譯 GCC 時,也需要修改其源代碼以告訴 GCC 使用新的動態鏈接器。如果不加修改,將會導致 GCC 自身的程序嵌入來自宿主系統目錄 /lib 的動態鏈接器名稱,這將破壞遠離宿主系統的目標。正是基于前面的這個出發點,核心工具鏈是自包含和自托管的。第五章其它的軟件包都將在 /tools 中的新 Glibc 的基礎上進行構建。

在進入第六章中的 chroot 環境前,將安裝的首個主要的軟件包是 Glibc,這是因為它天生具有前面提及的自給自足特點。一旦將 Glibc 安裝到 /usr 中,我們將快速改變工具鏈的默認設置,然后繼續構建目標 LFS 系統的其余部分。


創建者:Gerard Beekmans

編輯者:Matthew Burgess 和 Armin K.

翻譯團隊:LCTT

譯者/校對:Yuking-net,wxy

原文鏈接? ? ? ?

總結

以上是生活随笔為你收集整理的《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.2 工具链技术备注...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看污污网站 | av片免费在线 | 国产精品嫩草影院精东 | 特级西西www444人体聚色 | 高潮白浆女日韩av免费看 | 无限国产资源 | 奇米四色网 | 午夜激情黄色 | 在线播放成人 | 日本色视频 | 蜜桃av一区 | 91视频高清| 欧美丰满老妇性猛交 | 国产精品福利一区二区三区 | 日本少妇xxxx软件 | 亚洲精品小视频在线观看 | 狠狠五月婷婷 | 久久久久99精品国产片 | 人人干狠狠干 | 天堂√ | 污视频在线免费 | 中文字幕永久在线视频 | 中文字幕在线免费看 | 东京热av一区 | 国产一级精品毛片 | 国产人人看 | 丝袜亚洲综合 | 亚洲一区二区麻豆 | 在线播放不卡 | 亚洲午夜不卡 | 国产一级视频在线 | 色婷婷综合五月 | 91精品国产综合久久精品 | 亚洲成人第一区 | 一区二区视频在线播放 | 亚洲阿v天堂 | 美女黄色录像 | 日韩国产欧美一区二区三区 | 国产女人18毛片水18精 | 中国人与拘一级毛片 | 99re在线播放| 国产香蕉在线观看 | 韩国av三级 | 日本视频免费在线播放 | 插插插操操操 | 丰满饥渴老女人hd | 在线观看日本一区 | 扒开美女内裤狂揉下部 | 国产精品91一区 | 中国新婚夫妻性猛交 | 538国产精品视频一区二区 | 五月av综合av国产av | 亚洲一区二区三区四区五区六区 | 国产精品不卡av | 久久不卡免费视频 | 日本国产中文字幕 | 久久蜜桃av一区二区天堂 | 亚洲视频大全 | 3o一40一50一6o女人毛片 | 狠狠干女人 | 一级视频在线观看 | 国产精品mm | 亚洲A∨无码国产精品 | 国产福利专区 | av资源一区 | 国产精品天天看 | 亚洲天堂av电影 | www,jizz,com| 新91av| 欧美另类一区二区 | 日韩中文字幕观看 | jzjzjzjzj亚洲成熟少妇 | 久久久全国免费视频 | 国产激情精品 | 欧美高清精品 | 午夜av电影在线观看 | 91在线精品秘密一区二区 | 网站av在线 | 久久免费视频6 | 欧美激情性做爰免费视频 | 亚洲精品日韩在线观看 | 日韩一级片免费 | 少妇高潮惨叫久久久久久 | 国产精品无码AV | 久久最新免费视频 | 亚洲制服一区二区 | 欧美日韩精品综合 | 亚洲精品国产精品国自产观看 | 国产精品女人精品久久久天天 | 91理论片午午伦夜理片久久 | 日韩乱论| 夜夜撸小说 | 成人激情电影在线观看 | 国模私拍一区二区 | 无遮挡aaaaa大片免费看 | 日本男男激情gay办公室 | 在线欧美激情 | www.xxx.国产 | 99国产精品久久久久99打野战 |