所以情况是这样的:我需要能够从能够从 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,但收效甚微。