[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