Compile error with cudafe 5.5 after updating from cuda 5.0

I have updated cuda from 4.2.9. to 5.0 and all works well. After updating to cuda 5.5 i have got compile error from cudafe. I compiled the *.ii file with cudafe 5.0 and all works well. I havent found Release Notes or other documentation about the changes from cudafe. Does anybody know something about the changes?

Errormessage:

C:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include\boost/type_traits/is_convertible.hpp(423): error: an incomplete class type is not allowed
detected during instantiation of class "boost::is_convertible<From, To> [with From=Sequence, To=boost::fusion::nil]"
C:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include\boost/fusion/container/list/detail/empty_impl.hpp(31): here

c:\scivis\werkstatt\visualizer\plugins\reconstruction\transform.hpp(27): error: nontype "Engine::DataDeviceHandle" is not a class template

empty_impl.hpp(31)

/*=============================================================================
		Copyright (c) 2007 Tobias Schwinger

		Distributed under the Boost Software License, Version 1.0. (See accompanying
		file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if !defined(BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED)
#define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED

#include <boost/type_traits/is_convertible.hpp>

namespace boost { namespace fusion
{
		struct cons_tag;

		struct nil;

		template <typename Car, typename Cdr>
		struct cons;

		namespace extension
		{
				template <typename Tag>
				struct empty_impl;

				template <>
				struct empty_impl<cons_tag>
				{
						template <typename Sequence>
						struct apply
								: boost::is_convertible<Sequence, nil>
						{};
				};
		}
}}

#endif

transform.hpp(27):

virtual void init( const scivis_plugins::reco::volume< DataType, N, Engine::template DataDeviceHandle > & sample, const Engine & d_ctx ) { }

Can anybody help?

Thanks,
Birgit

I’ll try not to hijack the thread completely, but I am also getting compile errors with cuda 5.5.
It is of a different kind. It appears a parenthesis is not well closed.

I get “error : A single input file is required for a non-link phase when an outputfile is specified” at the end of the compile phase.
This is on Windows with the 64 bits toolkit.

As for the OP’s problem, I’m afraid I am of no help!

@betula: As far as I know an .ii file is a compiler internal temporary file, and manual processing of internal temporary files is unsupported. You might want to try -v with nvcc to see how those .ii files are processed by nvcc, then do your own processing accordingly.

@Ailleur: In my experience this means nvcc is invoked with a badly formed command line. The typical case I have seen is when the selection of various options in MSVS lead to a incorrectly constructed command line. Somewhere in MSVS you should be able to see the nvcc command line it constructs, find the incorrect syntax (maybe a missing switch, or a duplicate file name), then trace it back to the MSVS option that contributes the faulty command line component.

Also:
Not sure if this what njuffa was referring to, but in my experience VS sometimes does not display all the flags that it attempts to compile with - so direct copy+pasting of the VS compile code into command prompt will fail. Depends how youre attacking the problem I guess.

#3
I know that the .ii file ist a temporary file. I generated it with --keep and -v to see all steps to investigate the error. The interesting point is: with cudafe 5.0 all works well and manually processing is possible. With cudafe 5.5 not.
The error output of cudafe 5.5 is the same as if i compile the whole project with nvcc.
I haven’t change the compile options when i have updated cuda 5.0 to 5.5. So i think in cudafe something changed and there is no documentation of it.
Do you have any idea what i can do?

Thats my compile

"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.5/bin/nvcc.exe" C:/Scivis/Werkstatt/Visualizer/scivisLibrary/transformCUDA/regularization.cu -c -o C:/Scivis/Werkstatt/Visualizer64_build/scivisLibrary/transformCUDA/CMakeFiles/ScivisTransformCUDA.dir//./ScivisTransformCUDA_generated_regularization.cu.obj -ccbin cl -m64 -D_WIN32_WINNT=0x0501 -DNOMINMAX -DBOOST_ALL_NO_LIB -DQT_NO_KEYWORDS -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DBOOST_ALL_NO_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -Xcompiler ,\"/DWIN32\",\"/D_WINDOWS\",\"/W3\",\"/Zm1000\",\"/EHsc\",\"/GR\",\"/DNDEBUG\",\"/MD\",\"/O2\",\"/Ot\",\"/QaxSSE4.1,SSSE3,SSE3,SSE2\" -ftz=true -prec-div=false -prec-sqrt=false -gencode arch=compute_30,code=sm_30 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_13,code=sm_13 -DNVCC "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.5/include" -IC:/Scivis/Werkstatt/Visualizer64_build -IC:/Scivis/Werkstatt/Visualizer -IC:/Scivis/Werkstatt/Visualizer -IC:/Scivis/Werkstatt/Visualizer/scivisLibrary -IC:/Scivis/Werkstatt/Visualizer/platform -IC:/Scivis/Werkstatt/Visualizer/startup -IC:/Scivis/Werkstatt/Visualizer/plugins/Reconstruction -IC:/Scivis/Werkstatt/Visualizer/plugins -IC:/Scivis/Werkstatt/Visualizer/dataset -IC:/Scivis/Werkstatt/Visualizer/dataset/dicom -IC:/Scivis/Werkstatt/Visualizer/dicomBrowsing -IC:/Scivis/Werkstatt/Visualizer/dicomService -IC:/Scivis/Werkstatt/Visualizer/filters -IC:/Scivis/Werkstatt/Visualizer/converters -IC:/Scivis/Werkstatt/Visualizer/module -IC:/Scivis/Werkstatt/Visualizer/queue -IC:/Scivis/Werkstatt/Visualizer/viewOrganisation -IC:/Scivis/Werkstatt/Visualizer/viewProperties -IC:/Scivis/Werkstatt/Visualizer/viewTools -IC:/Scivis/Werkstatt/Visualizer/report -IC:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include "-IC:/Program Files (x86)/Intel/Composer XE 2011 SP1/ipp/include" -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtGui -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtNetwork -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtCore -IC:/Scivis/libs/vs2010/intel/amd64/marx/5.60/include -IC:/Scivis/Werkstatt/Visualizer/tdng -IC:/Scivis/Werkstatt/Visualizer64_build/tdng -IC:/Scivis/Werkstatt/Visualizer/qtsingleapplication-2.6-commercial/src -IC:/Scivis/Werkstatt/Visualizer64_build/scivisLibrary/transformCUDA -IC:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtGui -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtNetwork -IC:/Scivis/libs/vs2010/intel/amd64/qt/4.7.1/include/QtCore "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.5/include" -IC:/Scivis/Werkstatt/Visualizer -IC:/Scivis/Werkstatt/Visualizer/plugins "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.5/include"
C:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include\boost/type_traits/is_convertible.hpp(423): error: an incomplete class type is not allowed
detected during instantiation of class "boost::is_convertible<From, To> [with From=Sequence, To=boost::fusion::nil]" 
C:/Scivis/libs/vs2010/intel/amd64/boost/1_48_0/include\boost/fusion/container/list/detail/empty_impl.hpp(31): here