特定目标特性和限制
CPU架构特性和限制
X86
对于 X86 的支持(包含32位和64位)在Darwin上被认为是稳定的,Linux,FreeBSD额Dragonfly BSD: 经过测试可以正确编译很多大的C,C++,Objective-C和Objective-C++基本代码。
ARM
对于ARM的支持(特别对于ARMv6 和 ARMv7) 在Darwin上被认为是稳定的(iOS): 经过测试可以正确编译许多大的C,C++,Objective-C和Objective-C++基本代码。Clang只支持有限数目的ARM架构。例如它还不完全支持ARMv5。
其他平台
clang目前包含一些对PPC和Sparc的支持;然而,仍然没有代码生成的重要片段,并且它们并没有经过显著性检验。
clang包含了对MSP430嵌入式处理器的有限支持,但是clang支持和LLVM后端支持还都是出于重度实验阶段的。
此刻其他平台是完全不支持的。在一个新平台上添加解析和语义分析需要的最小支持是非常容易的;见于 clang 源代码 lib/Basic/Targets.cpp 中。这一层次的支持对于把简单程序转换到 LLVM IR 是足够的。此刻转换到 LLVM IR 的适当支持需要添加代码到lib/CodeGen/CGCall.cpp; 然而这可能很快就会变化。生成汇编需要一个合适的LLVM后端。
操作系统特性和限制
Darwin(Mac OS/X)
没有
Windows
Cygming的支持尚出于实验阶段。
参见Microsoft Extensions
Cygwin
在Cygwin-1.7下工作。
MinGW32
Clang在一些mingw32发布上工作。Clang假定的目录如下:
- c:/mingw/include
- c:/mingw/lib
- c:/mingw/lib/gcc/mingw32/4.[3-5].0/include/c++
在MSYS上,一些测试会失败。
MinGW-w64
对于32位(i686-w64-mingw32)和64位(x86_64-w64-mingw32),Clang作如下假定:
- GCC versions 4.5.0 to 4.5.3, 4.6.0 to 4.6.2, or 4.7.0 (对于 C++ 头文件搜索路径)
- some_directory/bin/gcc.exe
- some_directory/bin/clang.exe
- some_directory/bin/clang++.exe
- some_directory/bin/../include/c++/GCC_version
- some_directory/bin/../include/c++/GCC_version/x86_64-w64-mingw32
- some_directory/bin/../include/c++/GCC_version/i686-w64-mingw32
- some_directory/bin/../include/c++/GCC_version/backward
- some_directory/bin/../x86_64-w64-mingw32/include
- some_directory/bin/../i686-w64-mingw32/include
- some_directory/bin/../include
对于你可以在MinGW-w64官方网站上可以找到的任何工具链,此目录结构是标准的。
Clang预期PATH中为i686-w64-mingw32(或者x86_64-w64-mingw32)编译的GCC可执行文件”gcc.exe”
在x86_64-w64-mingw32上,一些测试可能会失败。