TL;DR:如果它们在 llvm 版本方面足够接近,它们的行为应该相似(可能在其中一个上添加了优化/功能)。但是没有任何信息可以用来找出你的意思。
从我从Portfile中看到的, {llvm,clang}-3.4 端口(以及其他类似的,我假设)安装了一个普通的 llvm 和/或 clang。
例如:最新发布的 Xcode 自带:
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix
Apple 没有告诉我们具体的修订号,但我们知道他们的私人 clang 是基于 2013 年中至 2014 年初之间从主干分支出来的 llvm 的修订。
我也不明白您所说的“macport clang 更接近 gcc”是什么意思。这似乎没有任何意义,但我可能会误解。Apple 的 clang 非常接近主线 clang,AFAIK。他们有他们的版本,这些版本基于一个未知的修订版,但仍然存在。
Clang 是llvm 项目的C 前端。它由 llvm 社区指导,所有(公共)工作都发生在主 llvm 存储库(在 clang 的目录上)。但是您仍然可以在没有 clang 的情况下安装 llvm,或者在没有(大部分?)其他 llvm 实用程序的情况下安装 clang。这就是为什么你在 macports 上有单独的 clang 和 llvm 包的原因。
你为什么说他们的行为不同,他们的行为有多大不同?您是否使用相同的选项进行编译?哪个?它们是否都来自同一个版本,例如 3.3 和 3.3svn(这仅意味着它们之间最多有大约 6 个月的时间,这不会使它们成为完全相同的版本)?