首先,这不是我第一次尝试构建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发行版.举个例子,我可以说破坏和高山,但musl wiki更多.至少你可以在主机上构建二进制文件,并尝试将它们导入你的设备.
既然你正在尝试为嵌入式平台构建二进制文件,我强烈建议你不要搞砸GNU软件,而是试试lightweight alternatives.