[Insight-developers] Problem with 3.14 release

Bradley Lowekamp blowekamp at mail.nih.gov
Fri May 29 16:44:51 EDT 2009


Unless RougeResearch5 is an intel, I don't see any machines on the  
dash board which cover this case. I should have chosen by build  
configurations for the mini's better.

By setting:
CMAKE_OSX_ARCHITECTURES:STRING=ppc;i386;ppc64;x86_64

I am getting the following compilation error:

[ 24%] Building CXX object Utilities/vxl/core/vnl/CMakeFiles/ 
itkvnl.dir/vnl_math.o
In file included from /nfs/mead/Users/blowek1/src/Insight/Utilities/ 
vxl/core/vnl/vnl_math.cxx:8:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
51:46: error: emmintrin.h: No such file or directory
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_rnd_halfinttoeven(float)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
193: error: ‘_mm_set_ss’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
193: error: ‘_mm_cvtss_si32’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_rnd_halfinttoeven(double)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
200: error: ‘_mm_set_sd’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
200: error: ‘_mm_cvtsd_si32’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_floor(float)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
359: error: ‘_mm_set_ss’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
359: error: ‘_mm_cvtss_si32’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_floor(double)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
366: error: ‘_mm_set_sd’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
366: error: ‘_mm_cvtsd_si32’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_ceil(float)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
444: error: ‘_mm_set_ss’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
444: error: ‘_mm_cvtss_si32’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h:  
In function ‘int vnl_math_ceil(double)’:
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
451: error: ‘_mm_set_sd’ was not declared in this scope
/nfs/mead/Users/blowek1/src/Insight/Utilities/vxl/core/vnl/vnl_math.h: 
451: error: ‘_mm_cvtsd_si32’ was not declared in this scope
make[2]: *** [Utilities/vxl/core/vnl/CMakeFiles/itkvnl.dir/vnl_math.o]  
Error 1


If I am just building ppc, or intel, it fine (this is what I think is  
covered on the dash board. But if it's both architectures, I get these  
error messages.

As intel and ppc have different endianness, a similar handling of this  
cross compilation issue was done here in itkConfigure.h.in :

/* what byte order */
/* All compilers that support Mac OS X define either __BIG_ENDIAN__ or
    __LITTLE_ENDIAN__ to match the endianness of the architecture being
    compiled for. This is not necessarily the same as the architecture  
of
    the machine doing the building. In order to support Universal  
Binaries on
    Mac OS X, we prefer those defines to decide the endianness.
    On other platform, we use the result of the TRY_RUN. */
#if !defined(__APPLE__)
   #cmakedefine CMAKE_WORDS_BIGENDIAN
   #ifdef CMAKE_WORDS_BIGENDIAN
     #define ITK_WORDS_BIGENDIAN
   #endif
#elif defined(__BIG_ENDIAN__)
   #define CMAKE_WORDS_BIGENDIAN
   #define ITK_WORDS_BIGENDIAN
#endif

I think the checks for VNL_CONFIG_ENABLE_SSE2_ROUNDING, appear to  
build a build test only. This is insufficient when building an apple  
universal binary.

Brad



On May 29, 2009, at 4:11 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] wrote:

> Hello,
>
> I think there is a problem with the 3.14. If you have an intel mac  
> and are building a universal binary there is a compilation issue.
>
> This is likely due to the rounding changing, and how it checks for  
> the architecture. I am building an experimental now (victoria.nlm).  
> And I am going to change mini1.nlm, to cover this case tonight too.
>
> Brad
>
> ========================================================
> Bradley Lowekamp
> Lockheed Martin Contractor for
> Office of High Performance Computing and Communications
> National Library of Medicine
> blowekamp at mail.nih.gov
>
>
> <ATT00001.txt>

========================================================
Bradley Lowekamp
Lockheed Martin Contractor for
Office of High Performance Computing and Communications
National Library of Medicine
blowekamp at mail.nih.gov


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090529/e79c209b/attachment.htm>


More information about the Insight-developers mailing list