特定目标特性和限制

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上,一些测试可能会失败。