我正在写一个小小的自学项目。它与Clang和LLVM内部黑客行为有关 但是在我调查代码库和阅读文档时,构建过程发生了奇怪的事情。
我想为初学者做的是为SPARC目标构建LLVM和Clang。但是这个相当简单的任务结果证明是一种安静的挑战。
我使用稳定版本3.4.2中的源代码,文件夹树看起来像这样:
llvm/
...
projects/
...
test-suite <-- test-suite-3.4.src.tar.gz extracted here
tools/
...
clang/ <-- cfe-3.4.2.src.tar.gz extracted here
....
tools/
....
extra <-- clang-tools-extra-3.4.src.tar.gz extracted here
从中间文件夹(与llvm处于同一级别),我调用以下内容:
../llvm/configure --disable-optimized --enable-targets=sparc \
--prefix=/home/wf34/projects/helloClang/built
令人惊讶的是,由此产生的clang和llvm无法处理SPARC拱。
../built/bin/clang file2.c -S --target=sparc-unknown-linux -emit-llvm -o -
给予(以及其他人)以下行:
clang: warning: unknown platform, assuming -mfloat-abi=soft
如果我只写--target = sparc。
,结果是一样的最后,附上 llc --version 的结果:
LLVM (http://llvm.org/):
LLVM version 3.3
Optimized build.
Default target: x86_64-pc-linux-gnu
Host CPU: corei7-avx
Registered Targets:
cpp - C++ backend
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
感谢您的见解和想法!
修改 实际上,拥有所有这些内容,我猜测可能在获取和解开并从稳定版本设置源时可能会弄错。也许我最好直接按照手动步骤从svn trunk获取源代码。如果我不会收到任何更有意义的建议,我会回到那个选项。