为什么 gcc 在引导 LFS 时需要 --with-newlib 标志?

为什么 gcc 在引导 LFS 时需要 --with-newlib 标志?

当在 Linux From Scratch 中构建 GCC 的第一遍时,它说要传递标志,--with-newlib因为

“由于工作 C 库尚不可用,这可以确保在构建 libgcc 时定义抑制_libc 常量。这可以防止编译任何需要 libc 支持的代码。”

为什么是这样?为什么 LFS 或 GCC 损坏?根据实际海湾合作委员会指令--with-newlib不做类似的事情,只告诉 GCC 你正在使用新库

“指定‘newlib’被用作目标 C 库。这会导致 __eprintf 从 libgcc.a 中被省略,假设它将由‘newlib’提供。”

这是怎么回事? LFS 是否从根本上被破坏并且做错了(除了它使用 gcc 源代码中的子目录进行构建这一事实,这是 GCC 明确不支持的..),或者是 GCC 从根本上被破坏并且无法通过实际执行某些操作来引导愚蠢地喜欢遵循它的文档?

如果 LFS 做错了,构建与主机系统隔离的本机 GCC/binutils 工具链的正确方法是什么

如果 GCC 错了,那么我想我(和其他人)只是运气不好,做了一些荒谬的事情,比如“遵循指示”,这有点糟糕。

相关内容