在 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 和内核的源文件是相同的(全部由构建自动下载脚本)。通过搜索相同的错误消息,我找不到任何有用的提示。任何人都可以建议可能是什么问题吗?
我在主机环境中使用以下软件:
- Windows 7 64 位
- Cygwin 2.0.0(64 位)
- 海湾合作委员会 4.9.2
如 Cygwin 的 FAQ 所述。 Cygwin 不使用 stat64。
可以尝试将 stat64
手动替换为 stat
或通过定义替换。
我正在尝试在 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 和内核的源文件是相同的(全部由构建自动下载脚本)。通过搜索相同的错误消息,我找不到任何有用的提示。任何人都可以建议可能是什么问题吗?
我在主机环境中使用以下软件:
- Windows 7 64 位
- Cygwin 2.0.0(64 位)
- 海湾合作委员会 4.9.2
如 Cygwin 的 FAQ 所述。 Cygwin 不使用 stat64。
可以尝试将 stat64
手动替换为 stat
或通过定义替换。