Linux

使用 ELLCC 建構 LFS 系統

  • January 29, 2016

首先,這不是我第一次嘗試建構 LFS 系統——我已經成功建構了 LFS 7.8 和 LFS 7.8-systemd。

我想用 ELLCC 替換 GCC+GlibC 即 Clang/LLVM+musl。

它有一些限制 - 其中最值得注意的是它目前缺乏對動態連結的支持 - 但預期的目的是交叉編譯(或者更好的是,在設備上編譯)armhf LFS 建構,作為實驗的一部分在我的舊設備上用 Linux 完全替換 Android,因此二進製文件的效率很重要(因此我對使用 ELLCC 感興趣。)

真正的問題是,我該怎麼做呢?簡單地用 ELLCC 替換 GCC 和 GlibC 甚至不會讓我安裝 Linux API 標頭檔。我可以單獨從原始碼編譯一些程序,但它們最終總是以一種或另一種方式依賴於主機系統。

你是對的 - 簡單地交換工具鏈不會神奇地讓它工作。

作為一個經驗豐富的 musl 使用者,我可以說這不會“開箱即用”。很多很多程序仍然需要 glibc 僅提供甚至不在 musl 中的特殊情況,尤其是許多 GNU 項目程序在沒有 glibc 的情況下甚至無法編譯。

修復流行但損壞的程序的大工作目前正在進行中,如果您願意,您可以監控和參與。有像sabotage linux這樣的項目會為這些程序生成更新檔,以使它們與 musl(以及其他鮮為人知的 libcs​​)一起工作,所以如果你足夠勇敢,你可以嘗試在這些項目的幫助下修復主要的建構損壞。

為了使簡單的 LFS 工作,你最終可能會大量修改這本書。(回到 2009 年,當我上次建構 LFS 時,我記得仍然有一些無法解釋的指令可以解決一些 glibc 特殊情況)

作為替代方案,您可以嘗試:

  • CLFS Embedded,它用 musl 替換了 glibc。你可以合併這兩本書來製作適合你情況的東西。儘管它完全省略了經典的 GNU 軟體。
  • 使用其中一種新的基於 musl 的 Linux 發行版。例如,我可以命名 sabotage 和 alpine,但musl wiki命名更多。至少您可以在主機上建構二進製文件,然後它們會嘗試將它們導入您的設備。

由於您正在嘗試為嵌入式平台建構二進製文件,因此我強烈建議您不要弄亂 GNU 軟體,而是嘗試使用輕量級的替代方案

引用自:https://unix.stackexchange.com/questions/258424