在 Cygwin 上为交叉编译器构建 glibc 失败

Building glibc for cross compiler fails on Cygwin

我正在尝试在 Windows 上在 Cygwin 下构建一个交叉编译器工具链,以便我(或者更确切地说是我正在帮助的人 - 我会使用 Linux 但 Windows 对很多人来说更容易)可以编译针对 MIPS 架构的源代码。

我有一个脚本,它使用以下代码在 Linux 上的 x86_64 下成功地为 MIPS 构建了一个交叉编译器工具链:

https://github.com/UoMCS/mips-cross-compile/tree/glibc

然而,当我 运行 Cygwin 下的脚本时,它在 glibc install-headers 阶段失败并出现以下错误:

gcc   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build -include /home/Cygwin/xc/mips-linux/tmp/build-glibc/config.h rpc_main.c \
        -o /home/Cygwin/xc/mips-linux/tmp/build-glibc/sunrpc/cross-rpc_main.o -MMD -MP -MF /home/Cygwin/xc/mips-linux/tmp/build-glibc/sunrpc/cross-rpc_main.o.dt -MT /home/Cygwin/xc/mips-linux/tmp/build-glibc/sunrpc/cross-rpc_main.o -c
rpc_main.c: In function ‘find_cpp’:
rpc_main.c:329:17: error: storage size of ‘buf’ isn’t known
   struct stat64 buf;
                 ^
rpc_main.c: In function ‘checkfiles’:
rpc_main.c:1117:17: error: storage size of ‘buf’ isn’t known
   struct stat64 buf;
                 ^
Makefile:163: recipe for target '/home/Cygwin/xc/mips-linux/tmp/build-glibc/sunrpc/cross-rpc_main.o' failed
make[2]: *** [/home/Cygwin/xc/mips-linux/tmp/build-glibc/sunrpc/cross-rpc_main.o] Error 1
make[2]: Leaving directory '/home/Cygwin/xc/mips-linux/tmp/glibc-2.21/sunrpc'
Makefile:213: recipe for target 'sunrpc/install-headers' failed
make[1]: *** [sunrpc/install-headers] Error 2
make[1]: Leaving directory '/home/Cygwin/xc/mips-linux/tmp/glibc-2.21'
Makefile:9: recipe for target 'install-headers' failed
make: *** [install-headers] Error 2

鉴于 binutils、GCC、glibc 和内核的源文件是相同的(全部由构建自动下载脚本)。通过搜索相同的错误消息,我找不到任何有用的提示。任何人都可以建议可能是什么问题吗?

我在主机环境中使用以下软件:

如 Cygwin 的 FAQ 所述。 Cygwin 不使用 stat64。 可以尝试将 stat64 手动替换为 stat 或通过定义替换。