状況は次のとおりです。SPARCサーバーから実行できるバイナリをLinuxマシン(Ubuntu上)からコンパイルできる必要があります。コンパイルしようとしているプログラムは非常に単純です。
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Testing the SPARC program...");
return EXIT_SUCCESS;
}
動作させるためにさまざまなコンパイル行を試しましたが、残念ながら何も動作していないようです。
私は伝統的なものを試しました:
clang -target sparc blah.c -o blahsparc
しかし、これは機能しません。アセンブラーの失敗がたくさんあります。
/tmp/blah-519e77.s: Assembler messages:
/tmp/blah-519e77.s:7: Error: unknown pseudo-op: '.register'
/tmp/blah-519e77.s:8: Error: unknown pseudo-op: '.register'
/tmp/blah-519e77.s:9: Error: unknown pseudo-op: '.register'
/tmp/blah-519e77.s:10: Error: unknown pseudo-op: '.register'
/tmp/blah-519e77.s:11: Error: no such instruction: 'save %sp,-240,%sp'
/tmp/blah-519e77.s:12: Error: no such instruction: 'st %g0, [%fp+2043]'
...
clang: error: assembler (via gcc) command failed with exit code 1 (use -v to see invocation)
私もこれを試しました:
clang -cc1 -triple "sparc-unknown-Linux" blah.c -o blahsparc
欠落しているヘッダーについて不平を言うので、-cc1 を使用する代わりに、-Xclang を使用します。
clang -Xclang -triple -Xclang "sparc-unknown-Linux" blah.c -o blahsparc
ただし、これも「エラー: 不明なターゲット CPU 'x86-64'」が原因で失敗します。これをどこに進めればよいかわかりません。crosstool-ng も使用してみましたが、ほとんど成功しませんでした。