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

Tom Vercauteren tom.vercauteren at m4x.org
Mon Jul 20 04:28:11 EDT 2009


Hi Gary,

The problem was in ITK (actually its VNL code). It has been fixed in
cvs a few weeks ago:
http://www.itk.org/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/CMakeLists.txt?root=Insight&r1=1.16&r2=1.17&sortby=date
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 Sat, Jul 18, 2009 at 19:03, Hui Zhang<garyhuizhang at gmail.com> wrote:
> Hi Tom,
>
> I tried the first workaround that you suggested and it works beautifully.
>  Thanks very much.  So is this a bug in CMake or in ITK's CMakeLists.txt?
>
> Gary
>
> On Jul 18, 2009, at 9:41 AM, Tom Vercauteren wrote:
>
>> 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