[Insight-users] Building ITK 3 on AMD Win64 with VC2005

Reinhold Füreder R.Fureder at exeter.ac.uk
Sun Dec 10 06:14:17 EST 2006


Hi Luis,

Thanks. As usual, you have provided the perfect solution.

Reinhold

> -----Original Message-----
> From: insight-users-bounces+r.fureder=exeter.ac.uk at itk.org 
> [mailto:insight-users-bounces+r.fureder=exeter.ac.uk at itk.org] 
> On Behalf Of Luis Ibanez
> Sent: Friday, December 08, 2006 6:49 PM
> To: Reinhold Füreder
> Cc: insight-users at itk.org
> Subject: Re: [Insight-users] Building ITK 3 on AMD Win64 with VC2005
> 
> 
> 
> Hi Reinhold,
> 
> Thanks for pointing out this problem and for exploring
> solutions for it.
> 
> We entered this issue as Bug # 4165 in the bug tracker:
> 
> http://public.kitware.com/Bug/bug.php?op=show&bugid=4165
> 
> 
> and yesterday we committed a fix in both the ITK 3.0 branch
> and the main cvs trunk:
> 
> 
> ITK 3.0 Branch:
> http://www.itk.org/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/
> vnl_math.h?root=Insight&r1=1.5&r2=1.5.2.1
> 
> HEAD:
> http://www.itk.org/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/
> vnl_math.h?root=Insight&r1=1.5&r2=1.6 
> 
> 
> 
> The fix consisted in updating the vnl_math.h file from
> its most recent version in the CVS repository of VXL.
> 
> This happens to be:
> 
>             vnl_math.h revision 1.42 (from CVS VXL)
> 
> 
> Please update your checkout of ITK and let us know if
> you still find any problems.
> 
> 
> 
>     Thanks
> 
> 
>        Luis
> 
> 
> 
> ========================
> Reinhold Füreder wrote:
> > Hi,
> > 
> > Sorry for my late response ;-) Looking at the actual source code --
> > thanks to the joy of open source -- points to a pragmatic 
> solution. The
> > little fix below is not at all perfect: (a) it just falls 
> back to the
> > explicit definition consisting of several statements and is 
> supposed to
> > be therefore significantly slower (?), and (b) this fall back is
> > independent of 32bit vs. 64bit mode although it is not required for
> > 32bit mode. I think improving the latter would currently only (but
> > luckily easily) possible by means of CMake -- if the chosen 
> generator is
> > VC2005 64bit then ...
> > 
> > For now we have an explicit source tree for 64bit ITK where 
> the inline
> > assembler code is guarded by checks that VCL_VC_8 is not 
> defined, line
> > 149:
> > 
> > #elif defined (VCL_VC) && !defined(VCL_VC_8) && !defined(__GCCXML__)
> > 
> > In conclusion this is the most pragmatic temporary solution, but not
> > ideal.
> > 	Reinhold
> > 
> > 
> >>-----Original Message-----
> >>From: insight-users-bounces+r.fureder=exeter.ac.uk at itk.org 
> >>[mailto:insight-users-bounces+r.fureder=exeter.ac.uk at itk.org] 
> >>On Behalf Of Reinhold Füreder
> >>Sent: Wednesday, November 29, 2006 1:14 PM
> >>To: insight-users at itk.org
> >>Subject: [Insight-users] Building ITK 3 on AMD Win64 with VC2005
> >>
> >>
> >>Hi,
> >>
> >>My goal is to "port" our Win32 application that is based on 
> >>ITK and VTK
> >>among others to Win64 (Microsoft Windows Server 2003, Enterprise x64
> >>Edition, Service Pack1, Dual Core AMD Opteron) by means of VC2005.
> >>
> >>As a first naive (?) attempt I just took and installed the prebuilt
> >>latest CMake release 2.4.4 (a Win32 application). Utilising 
> >>its "Visual
> >>Studio 8 2005 Win64" generator seemingly allowed to build 
> VTK (5.0.2)
> >>without problem, but building ITK (3.0.0) leads to this kind 
> >>of errors:
> >>-----
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(160) :
> >>error C4235: nonstandard extension used : '_asm' keyword 
> not supported
> >>on this architecture
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(162) :
> >>error C2065: 'fld' : undeclared identifier
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(162) :
> >>error C2146: syntax error : missing ';' before identifier 'flt'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(162) :
> >>error C2146: syntax error : missing ';' before identifier 'fistp'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(163) :
> >>error C2065: 'fistp' : undeclared identifier
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(163) :
> >>error C2146: syntax error : missing ';' before identifier 'intgr'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(163) :
> >>error C2143: syntax error : missing ';' before '}'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(170) :
> >>error C4235: nonstandard extension used : '_asm' keyword 
> not supported
> >>on this architecture
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(172) :
> >>error C2146: syntax error : missing ';' before identifier 'flt'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(172) :
> >>error C2146: syntax error : missing ';' before identifier 'fistp'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(173) :
> >>error C2146: syntax error : missing ';' before identifier 'intgr'
> >>4>D:\SwDev\InsightToolkit-3.0.0\Utilities\vxl\core\vnl/vnl_mat
> >>h.h(173) :
> >>error C2143: syntax error : missing ';' before '}'
> >>-----
> >>
> >>These errors are repeating a couple of times, but assuming that the
> >>compiler does not omit too much code after this error, this 
> >>really seems
> >>to be the only problem. According to MSDN "inline asm on 64bit
> >>development is not a supported scenario by VC2005. What I 
> >>would suggest
> >>is keep the inline asm for 32bit development under an ifdef 
> >>but use the
> >>64bit intrinsics when compiling for 64bit." I am wondering 
> if this is
> >>really the (only) problem and solution, or if I miss something.
> >>
> >>In fact these two functions are actually introduced by:
> >>-----
> >> // Win32 doesn't seem to have these functions.
> >> // Therefore implement inline versions of these functions here.
> >>-----
> >>
> >>Reasons that make me think that I may miss something are:
> >>(a) There are other sometimes quite recent postings if this 
> >>Win64 build
> >>scenario is supported without answer.
> >>(b) There was an older message
> >>(http://public.kitware.com/pipermail/cmake/2005-December/007
693.html)
>>saying that one should build CMake from sources to have a 64bit Cmake.
>>However, there the problem was already in utilising CMake itself.
>>(c) The project properties include the compiler flag preprocessor
>>defintion /DWIN32.
>>(d) ITK's subproject itkpng also seems to use inline 
>>assembler, but its
>>usage is guarded by 
>>Special ifdefs and the corresponding lib is built successfully.
>>
>>Thanks in advance for your help/advise,
>>	Reinhold
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
> 
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 
_______________________________________________
Insight-users mailing list
Insight-users at itk.org
http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list