【发布时间】:2013-10-01 14:27:19
【问题描述】:
所以情况如下:我需要能够从能够从 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,但收效甚微。
【问题讨论】:
-
Clang 的 documentation 表明 SPARC 支持不完整。
-
您是否查看了最新的代码并自己构建了它?我确信 ubuntu 中的 clang/llvm 是 svn trunk 背后的好方法。我看到偶尔会为 sparc 提交 LLVM,因此至少 llvm 支持应该会有所改善。
标签: c++ c clang sparc llvm-clang