2011-08-05 6 views
1

私は過去にLinux/Windowsでうまく動作していた既存のスクリプトを使用してOSX用のps2(プレイステーション2)ツールチェーンを構築中ですが、OSXでは常に面倒です。なぜクロスgccはネイティブ '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

ここで注目すべき事:

私が今直面しています問題は、私はクロスgccが明らかに代わりに 'との既存のクロスの「と」ネイティブを呼び出しているポイントを得ることですee-gccは、/usr/bin/../libexec/gcc/darwin/x86_64/asから 'as'を呼び出しています(つまり、ee-asの代わりにシステムネイティブ)。どうすればいいの ?

'ee-gcc -print-search-dirs'の出力を確認する私はee-asが指定されたパスの1つにあり、実行可能であることを確認しました。

すべてのデータにアクセスすることなくこのことについて言い難いかもしれませんが、誰かが私が探しているアイデアがあります.ee-gccがそのアセンブラをネイティブなものに解決する方法を理解できません。アセンブラバイナリの選択はどのように機能しますか?

UPDATE 入力してくれてありがとうしかし、私は全部が当初予想よりも多くの壊れて怖いです。 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

を処理している間に今のgcc(LLVM-GCC-4.2は)私は、関連するバグレポート/パッチが、今のところありませんサイコロためにGoogleを始めセグメンテーションフォルトれます。入力していただきありがとうございます。解決

+0

「AS = ee-as make」を強制実行しようとしましたか? – j4x

答えて

1

アセンブラ・パスは、マシンスペック

gcc -dumpspecs 

に私の知る限りであり、あなたが-specs=オプションで仕様を上書きすることができ*invoke_as:セクション

に見えます。

+1

コマンドラインの '-B'は、コンパイラ/アセンブラ/リンカバイナリの検索パスをオーバーライドする必要があります... –

+0

R ..しかし、gccはどの名前ですか? – osgx

+0

私は、 '-B'で与えられたパスで、' as'とターゲット名接頭語の両方を検索します。 –

関連する問題