3

我目前正在尝试为我的树莓派交叉编译构建 crosstool-ng,但我遇到了一些问题。尝试构建 crosstool 版本 1.19.0 时出现以下错误:

[CFG  ]    checking for arm-unknown-linux-gnueabi-gcc... (cached) arm-unknown-linux-gnueabi-gcc    
[CFG  ]    checking version of arm-unknown-linux-gnueabi-gcc    ... 4.8.2, ok
[CFG  ]    checking for gnumake... no
[CFG  ]    checking for gmake... no
[CFG  ]    checking for make... make
[CFG  ]    checking version of make... 4.0, bad
[CFG  ]    checking for gnumsgfmt... no
[CFG  ]    checking for gmsgfmt... no
[CFG  ]    checking for msgfmt... msgfmt
[CFG  ]    checking version of msgfmt... 0.19.1, ok
[CFG  ]    checking for makeinfo... makeinfo
[CFG  ]    checking version of makeinfo... 5.2, ok
[CFG  ]    checking for sed... sed
[CFG  ]    checking version of sed... 4.2.2, ok
[CFG  ]    checking for gawk... gawk
[CFG  ]    checking version of gawk... 4.1.1, ok
[CFG  ]    checking for arm-unknown-linux-gnueabi-nm... arm-unknown-linux-gnueabi-nm
[CFG  ]    checking for autoconf... autoconf
[CFG  ]    checking whether autoconf works... no
[ERROR]    configure: error: 
[CFG  ]    *** These critical programs are missing or too old: make
[CFG  ]    *** Check the INSTALL file for required versions.
[ERROR]  
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Installing C library headers & start files'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR]  >>        called from: do_libc_backend_once[scripts/build/libc/glibc-eglibc.sh-common@347]
[ERROR]  >>        called from: do_libc_backend[scripts/build/libc/glibc-eglibc.sh-common@143]
[ERROR]  >>        called from: do_libc_start_files[scripts/build/libc/glibc-eglibc.sh-common@60]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@632]

根据这个网站:http : //colocsbar.blogspot.fr/2014/01/crosstool-ng-1190-et-make-40.html 我必须修补 eglibc 配置脚本。但我找不到它是哪一个,我试图将我能找到的每个 glibc 脚本修补到 crosstool 文件夹中,但每次修补都失败。有没有人有解决这个错误的方法?谢谢

4

2 回答 2

3

好吧,这有点晚了,但我遇到了同样的问题,而且信息很少。这似乎是 eglibc 中短视的版本限制。该INSTALL文件显示 3.79 或更高版本,但实际配置会检查 3.79 和 3.89(我认为,不确定使用的模式匹配语法),否则会失败。该链接上有一个 .patch 文件,但我也找不到有关它是什么文件的信息。

因此,我对整个目录进行了 grep,该目录ac_prog_version=给出了很多点击,但 eglibc 的配置在那里。

我更改的文件是:.build/src/eglibc-2_13/configure

大约在 5000 行左右;取决于你的版本。INSTALL我把它改成了 4.1,因为那是我的 make 版本(补丁是 4.0——尽管它应该真的像文件所说的那样使它成为 3.79 或更高版本)。

于 2014-12-05T20:56:23.700 回答
1

请允许我指出 eglibc 不再开发,建议您改用 glibc。我在尝试为 Raspberry Pi 构建工具链时遇到了与 eglibc 相关的问题。eglibc 可能很快会从 crosstools-ng 中删除。请参阅此问题:https ://github.com/crosstool-ng/crosstool-ng/issues/8 。

于 2014-12-15T20:36:41.330 回答