You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think I will make this change, but there is a catch here:
As things stand, clang is configured as gcc, but since it only claims to be gcc-4.2 a rather limited number of features get enabled.
If we configure as clang, then we might possibly enable features which are not supported by the nvcc front end - unfortunately nvcc doesn't just pre-process the .cu files to split out host and device code, it actually passes then through it's compiler (or something like a compiler). As a result if we use a language feature that's unknown to the latest gcc version supported by nvcc, then it's also unknown to the nvcc front end and results in an error.
Fortunately, latest releases of nvcc seem to be reasonable feature complete, so hopefully this won't result in too many issues. I predict ructions come C++20 though :(
.... Normally the ultimate fix for complex setups is to use the configure script to generate a custom config, would need to use the -x cu option to nvcc so that the .cpp files are treated as .cu files.
Boost feature detection is wrong if the source is compiled with nvcc and clang as host compiler.
For example, move semantics can't be used with c++11 enabled.
When compiled with (ubuntu 16.04, gcc 5.4, CUDA 9.1):
everything works well, but
fails with the following:
If I change boost/config/select_compiler_config.hpp
to
everything works well.
Moved from Trac.
The text was updated successfully, but these errors were encountered: