[Insight-users] ITK 3.14.0 Compilation error when building universal library on Mac OSX Leopard

Tom Vercauteren tom.vercauteren at gmail.com
Sat Jul 18 09:41:34 EDT 2009


Hi Gary,

There is indeed a bug in the ITK 3.14 release if you change the target
architectures from within the cmake interface. It will be fixed in the
next release. In the meantime, there are two ways to get around this
issue.

1) Start from scratch (i.e. with no CMakeCache.txt file at all) and
let cmake be aware of the target architectures before it does
anything. Example:

 cmake -DCMAKE_OSX_ARCHITECTURES="i386;ppc" <path_to_itk_sources>
 Then fiddle with the cmake options


2) From the cmake interface, manually disable sse2 rounding:

 From the cmake interface, go to the advanced options section
 set VNL_CONFIG_ENABLE_SSE2_ROUNDING to OFF


Hope this helps,
Tom

On Sat, Jul 18, 2009 at 00:09, hui Zhang<garyhuizhang at gmail.com> wrote:
> Hi,
> I just want to report that ITK 3.14.0 fails to compile when set up to be
> built as a universal binary (i386;x86_64;ppc;ppc64) on Mac OSX Leopard
> 10.5.7 with gcc version 4.0.1.  The compilation will succeed if only i386
> and x86_64 are chosen.  The error message, attached below, points to an
> error in vnl_math.h.  It seems that emmintrin.h is being incorrectly
> included even for ppc/ppc64.
> Gary
> In file included from
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.cxx:8:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:51:46:
> error: emmintrin.h: No such file or directory
> In file included from
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.cxx:8:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:51:46:
> error: emmintrin.h: No such file or directory
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_rnd_halfinttoeven(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:193:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:193:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_rnd_halfinttoeven(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:200:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:200:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_floor(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:359:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:359:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_floor(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:366:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:366:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_ceil(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:444:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:444:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_ceil(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:451:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:451:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_rnd_halfinttoeven(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:193:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:193:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_rnd_halfinttoeven(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:200:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:200:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_floor(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:359:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:359:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_floor(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:366:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:366:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_ceil(float)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:444:
> error: ‘_mm_set_ss’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:444:
> error: ‘_mm_cvtss_si32’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:
> In function ‘int vnl_math_ceil(double)’:
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:451:
> error: ‘_mm_set_sd’ was not declared in this scope
> /Users/huiz/unix/tools/ITK/src/InsightToolkit-3.14.0/Utilities/vxl/core/vnl/vnl_math.h:451:
> error: ‘_mm_cvtsd_si32’ was not declared in this scope
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list