[Insight-developers] ITK 3.14 cannot build with GCC on non-ix86 (due to Rounding code) vnl_math_rnd_halfinttoeven

Tom Vercauteren tom.vercauteren at m4x.org
Wed Jul 22 08:52:47 EDT 2009


Hi Luis,

VNL_CHECK_FPU_ROUNDING_MODE should not be the culprit here. This
variable is only meant to perform some debugging.

What must be wrongly defined is
  GCC_USE_FAST_IMPL

As I mentioned earlier, this might have been corrected already in the HEAD:
http://www.itk.org/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/vnl_math.h?root=Insight&r1=1.13&r2=1.11&sortby=date

Tom

On Wed, Jul 22, 2009 at 14:22, Luis Ibanez<luis.ibanez at kitware.com> wrote:
>
> Hi Steve,
>
> Thanks for pointing this out.
>
> This seems to indicate that some TRY_COMPILE and TRY_RUN
> tests from VNL are not being executed correctly in these
> platforms.
>
> We will have to track where in the code we are testing for
>
>         VNL_CHECK_FPU_ROUNDING_MODE
>
> The test may be improper for that architecture, or it may
> not be executed correctly there.
>
>
> ------
>
> inline int vnl_math_rnd_halfinttoeven(double  x)
> {
> # ifdef VNL_CHECK_FPU_ROUNDING_MODE
>  assert(fegetround()==FE_TONEAREST);
> # endif
>  int r;
>  __asm__ __volatile__ ("fistpl %0" : "=m"(r) : "t"(x) : "st");
>  return r;
> }
>
> ------------
>
>
>  Luis
>
>
>
> --------------------------
> Mathieu Malaterre wrote:
>>
>> On Wed, Jul 22, 2009 at 8:07 AM, Steve M. Robbins<steve at sumost.ca> wrote:
>>
>>> Hi,
>>>
>>> Has anyone successfully built ITK using GCC on a platform other than
>>> x86 or amd64?
>>>
>>> The Debian builds for 3.14 are failing [1] on all platforms (other
>>> than i386 and amd64), mainly with this error:
>>>
>>>
>>>>
>>>> /build/buildd-insighttoolkit_3.14.0-1-alpha-pWsSda/insighttoolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
>>>> In member function 'virtual void itk::SPSAOptimizer::GenerateDelta(unsigned
>>>> int)':
>>>>
>>>> /build/buildd-insighttoolkit_3.14.0-1-alpha-pWsSda/insighttoolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:220:
>>>> error: unknown register name 'st' in 'asm'
>>>> make[3]: ***
>>>> [Code/Numerics/CMakeFiles/ITKNumerics.dir/itkSPSAOptimizer.o] Error 1
>>
>>
>> There is another error on hppa (I guess the asm might still fail),
>> apparently there is an issue with the size of char:
>>
>>
>> https://buildd.debian.org/fetch.cgi?pkg=insighttoolkit&arch=hppa&ver=3.14.0-1&stamp=1248118205&file=log&as=raw
>>
>> ...
>> cd /build/buildd/insighttoolkit-3.14.0/Build/Utilities/kwsys &&
>> /usr/bin/c++   -Ditksys_EXPORTS -DKWSYS_NAMESPACE=itksys
>> -Wno-deprecated  -ftemplate-depth-50 -Wall -Wno-deprecated -O3
>> -DNDEBUG -fPIC -I/build/buildd/insighttoolkit-3.14.0/Build
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Algorithms
>> -I/build/buildd/insighttoolkit-3.14.0/Code/BasicFilters
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Common
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Numerics
>> -I/build/buildd/insighttoolkit-3.14.0/Code/IO
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Numerics/FEM
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Numerics/NeuralNetworks
>> -I/build/buildd/insighttoolkit-3.14.0/Code/SpatialObject
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/MetaIO
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/NrrdIO
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/NrrdIO
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/DICOMParser
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/DICOMParser
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/expat
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/expat
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/nifti/niftilib
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/nifti/znzlib
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/itkExtHdrs
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities
>> -I/build/buildd/insighttoolkit-3.14.0/Code/Numerics/Statistics
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/vxl/v3p/netlib
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/vxl/vcl
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/vxl/core
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/vxl/v3p/netlib
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/vxl/vcl
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/vxl/core
>> -I/build/buildd/insighttoolkit-3.14.0/Build/Utilities/gdcm
>> -I/build/buildd/insighttoolkit-3.14.0/Utilities/gdcm/src   -o
>> CMakeFiles/itksys.dir/SystemInformation.o -c
>> /build/buildd/insighttoolkit-3.14.0/Utilities/kwsys/SystemInformation.cxx
>> In file included from
>>
>> /build/buildd/insighttoolkit-3.14.0/Utilities/kwsys/SystemInformation.cxx:21:
>>
>> /build/buildd/insighttoolkit-3.14.0/Build/Utilities/itksys/FundamentalType.h:62:24:
>> error: operator '==' has no left operand
>>
>> /build/buildd/insighttoolkit-3.14.0/Build/Utilities/itksys/FundamentalType.h:66:3:
>> error: #error "No native data type can represent an 8-bit integer."
>> make[3]: *** [Utilities/kwsys/CMakeFiles/itksys.dir/SystemInformation.o]
>> Error 1
>> make[3]: Leaving directory `/build/buildd/insighttoolkit-3.14.0/Build'
>> ...
>>
>>
>> 2cts
>


More information about the Insight-developers mailing list