[Insight-users] ITK 3.14.0 Compilation error when building universal library on Mac OSX Leopard
Hui Zhang
garyhuizhang at gmail.com
Sat Jul 18 13:03:47 EDT 2009
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