gpt4 book ai didi

c - 为什么 cross gcc 调用 native 'as' ?

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:47 25 4
gpt4 key购买 nike

我正在使用现有脚本为 OSX 构建 ps2(playstation 2)工具链,该脚本过去在 Linux/Windows 上运行良好,但在 OSX 上一直很麻烦。

我现在面临的问题是,我发现 cross gcc 显然正在调用 native “as”而不是现有的 cross“as”:

ee-gcc -B/Users/gilligan/ps2toolchain/build/newlib-1.10.0/build-ee/ee/newlib/ -isystem /Users/gilligan/ps2toolchain/build/newlib-1.10.0/build-ee/ee/newlib/targ-include -isystem /Users/gilligan/ps2toolchain/build/newlib-1.10.0/newlib/libc/include -DPACKAGE=\"newlib\" -DVERSION=\"1.10.0\" -I. -I../../../../../newlib/libc/stdlib -O2 -DMALLOC_ALIGNMENT=16 -DMISSING_SYSCALL_NAMES -I../../targ-include -I../../../../../newlib/libc/../libc/include -fno-builtin -G0 -g -c ../../../../../newlib/libc/stdlib/__adjust.c ee-gcc -B/Users/gilligan/ps2toolchain/build/newlib-1.10.0/build-ee/ee/newlib/ -isystem /Users/gilligan/ps2toolchain/build/newlib-1.10.0/build-ee/ee/newlib/targ-include -isystem /Users/gilligan/ps2toolchain/build/newlib-1.10.0/newlib/libc/include -DPACKAGE=\"newlib\" -DVERSION=\"1.10.0\" -I. -I../../../../../newlib/libc/stdlib -O2 -DMALLOC_ALIGNMENT=16 -DMISSING_SYSCALL_NAMES -I../../targ-include -I../../../../../newlib/libc/../libc/include -fno-builtin -G0 -g -c ../../../../../newlib/libc/stdlib/__exp10.c FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'G' flag! make[3]: * [__exp10.o] Error 1 make[3]: * Waiting for unfinished jobs.... FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'G' flag! make[3]: * [__adjust.o] Error 1 make[2]: [all-recursive] Error 1 make[1]: [all-recursive] Error 1 make: * [all-target-newlib] Error 2

这里要注意的事情(抱歉,可读性不是很好)是 ee-gcc/usr/bin/../libexec/gcc/darwin/x86_64 调用“as”/as 即系统 native 而不是 ee-as。怎么会这样?

检查“ee-gcc -print-search-dirs”的输出,我可以看到 ee-as 确实在指定路径之一中,我检查它是否可执行。

如果不访问所有数据,可能很难对此发表任何看法,但也许有人知道我可以寻找什么 - 我不明白 ee-gcc 如何将其汇编器解析为本地汇编器。汇编程序二进制选择是如何工作的?

更新感谢您的投入,但恐怕整个事情比最初预期的更糟糕。现在 gcc (llvm-gcc-4.2) 在处理 libgcc2.c 时出现段错误

/Users/gilligan/Development/ps2dev/ps2toolchain/build/gcc-3.2.2/build-ee-stage1/gcc/xgcc -B/Users/gilligan/Development/ps2dev/ps2toolchain/build/gcc-3.2.2/build-ee-stage1/gcc/ -B/usr/local/ps2dev/ee//ee/bin/ -B/usr/local/ps2dev/ee//ee/lib/ -isystem /usr/local/ps2dev/ee//ee/include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -G 0 -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include -DL_muldi3 -c ../../gcc/libgcc2.c -o libgcc/./_muldi3.o In file included from ../../gcc/libgcc2.c:44: ../../gcc/libgcc2.h:242: internal error: Segmentation fault: 11 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make[2]: * [libgcc/./_muldi3.o] Error 1 make[1]: [libgcc.a] Error 2 make: ** [all-gcc] Error 2

我开始在谷歌上搜索相关的错误报告/补丁,但到目前为止还没有。我想我要屈服了。再次感谢您的意见。

最佳答案

汇编程序路径解析在机器规范中是 AFAIK

 gcc -dumpspecs

并查看 *invoke_as: 部分

您可以使用 -specs= 选项覆盖规范。

关于c - 为什么 cross gcc 调用 native 'as' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com