please support clang 4.0 or update docs

The version ('40000') of the host compiler ('clang') is not supported

Which is not correct, according to

Presumably the version check is examining the major first because of what apple has done, then if major version 3 found permit minor 8 and higher. All clang 3.8+ should be acceptable host compilers, since they can also compile device code now. It would be great if nvcc played nicely with them since many projects using cmake still use nvcc directly.


3.8+ in the documentation refers to 3.8 or 3.x where x>8.

It does not mean clang 4, 5, 6, 7, or 39 is supported.

clang is not officially supported as a device code compiler for the NVIDIA toolchain, and the fact that clang 4 supports generation of CUDA device code is not relevant here.

The usage of clang here refers to clang as a host code compiler, in conjunction with the CUDA toolchain.

Hence why I ask for the docs to be updated. Presumably the PGI 16.3+ means the same thing. It would be simple to clarify what + actually means. For example, is PGI 17.4 supported?

It’s easy to see why your definition is correct, but it’s also pretty easy to see why I interpret their chart how I did.

I’m only talking about host compilers, turns out 3.9 was the first device code capable one anyway. The GCC versions make sense – they’re the native host compilers for each respective version of linux. I’m not asking for why which version of what be explained, that’s for NVIDIA to share if they want (like anybody actually has time for that). I just feel it would be helpful in preventing somebody (like me) from misunderstanding what 3.8+ means and spending 4hours compiling something I cannot use :S

Update I did some more testing, I’m pretty sure the version checking for Clang is just wrong.

OP: rejected: 4.0.0

Just now:

  • Rejected: 3.9.1 (wrong, assuming @txbob has the right understanding of 3.8+ allows 3.9)
  • Accepted (GOOD): 3.8.1
  • Accepted (???): 3.7.0

As stated above, I suspect this to be an artifact of having to deal with the shenanigans apple has pulled with their ridiculous version numbers. But as far as I understand it, with what @txbob states, it should report:

  • Rejected: 4.0.0 (X)
  • Accepted: 3.9.1 ( )
  • Accepted: 3.8.1 (X)
  • Rejected: 3.7.0 ( )

All in all, I’m in favor of less strict version checking. Maybe the clang-specific warnings could be demoted to warnings on LINUX ONLY? Or at least on anything other than mac?