2

我正在遵循LFS的说明,但有一点不同:我只遵循第 5 节的部分内容 - 在可以构建自己的 GCC 的范围内构建临时系统,原因是这是一台工作机器,而我没有'没有root权限。一切正常,直到我遇到配置错误glibc

configure: error:
*** These critical programs are missing or too old: as GNU ld make bison compiler
*** Check the INSTALL file for required versions.

经过一番调查,事实证明我不满足 LFS 所需的这个条件:

/usr/bin/yacc is a symbolic link to bison or a small script that executes bison.

原来没有这样的文件/usr/bin/yacc(虽然bison确实存在)。但是,因为我在工作中没有 root 权限,所以无法在那里创建符号链接。这里有解决方法吗?

4

1 回答 1

3

当前的 glibc 版本需要 bison 程序来构建(而不是 yacc)。您可以下载野牛源并像这样构建它们:

wget https://ftp.gnu.org/gnu/bison/bison-3.2.tar.gz
tar xf bison-3.2.tar.gz
cd bison-3.2
./configure --prefix=$HOME/install
make
make install

然后您可以将$HOME/install/bin目录放在命令搜索路径上:

PATH=$HOME/install/bin:$PATH

此时,glibc 的configure脚本应该选择那个野牛版本。

旧版本的 glibc(2.27 之前)将 bison 生成的文件作为源代码的一部分提供,因此 bison 是可选的。显然,您遵循的说明尚未更新以反映对野牛的新要求。

于 2018-12-23T11:20:13.677 回答