[ITK] [ITK-dev] Problems with Change in itkStaticConstMacro

Matt McCormick matt.mccormick at kitware.com
Fri Jan 22 22:04:21 EST 2016


Hi,

Please test this patch:

  http://review.source.kitware.com/#/c/20693/

Thanks,
Matt

On Fri, Jan 22, 2016 at 11:00 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> I think I am seeing the same error. I get this error on my Mac running gcc 4.2.1
> Building CXX object
> Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/itkImageRegionExplicitTest.cxx.o
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::ImageDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
> error: explicit instantiation of
> ‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::SliceDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
> error: explicit instantiation of
> ‘itk::ImageRegion<1u>::SliceDimension’ but no definition available
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::ImageDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
> error: explicit instantiation of
> ‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::SliceDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::ImageDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
> error: explicit instantiation of
> ‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
> In instantiation of ‘const unsigned int
> itk::ImageRegion<1u>::SliceDimension’:
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
>   instantiated from ‘itk::ImageRegion<1u>’
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
>   instantiated from here
> /Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
> error: explicit instantiation of
> ‘itk::ImageRegion<1u>::SliceDimension’ but no definition available
> make[2]: *** [Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/itkImageRegionExplicitTest.cxx.o]
> Error 1
> make[1]: *** [Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/all]
> Error 2
>
>
> On Fri, Jan 22, 2016 at 10:05 AM, Bradly Lowekamp <brad at lowekamp.net> wrote:
>> I have reproduced this error now with GCC 4.1, 4.2, and 4.3. GCC version 4.5
>> works.
>>
>> Thank you for your help in addressing this problem.
>>
>> I apologize for not having documentation for the systems and justifications
>> for the versions of compilation tools. I certainly should move to docker
>> images to build the distributions for Linux as well. We have had great
>> success with the portability and availability of the binary distributions
>> for SimpleITK. This has involve a lot of testing and modification for the
>> build platforms to get where it has been working. I would had for this to be
>> reduce due to one preference for implementing static constant integers.
>>
>> Brad
>>
>> On Jan 21, 2016, at 4:45 PM, Matt McCormick <matt.mccormick at kitware.com>
>> wrote:
>>
>> On Thu, Jan 21, 2016 at 4:07 PM, Bradly Lowekamp <blowekamp at mail.nih.gov>
>> wrote:
>>
>> Gcc 4.2 runs into the same ITK bug with explicit instantiation too.
>>
>> On Jan 21, 2016, at 3:35 PM, Matthew McCormick (thewtex)
>> <matt at mmmccormick.com> wrote:
>>
>> On Thu, Jan 21, 2016 at 3:27 PM, Bradly Lowekamp <blowekamp at mail.nih.gov>
>> wrote:
>>
>> It’s certainly would be great if I could rely on using gcc 4.8+ for building
>> the distributions for SimpleITK. But my understanding for several situations
>> 4.1 is still essentially required.
>>
>>
>> What are the situations?  GCC 4.1 is not required by PEP 513.
>>
>>
>> Anaconda Python 2.7, OSX Python.org distribution and OSX system, need
>> apple’s gcc 4.2
>>
>>
>> How is this build environment reproduced (OSX and XCode version)?
>>
>>
>> Your blog post solution for static linking in un-accetable as I don’t want
>> to use a GPL license. Along with static linking not being recommended with
>> PEP 513, and lastly it can cause conflicts when used in a loaded module with
>> an older libc version.
>>
>>
>> My blog post does not say static linking is required or the GPL is required.
>>
>>
>> "Statically linking libstdc++ avoids version compatibility issues.”
>>
>> Statically, linking an LGPL library such as libstdc++ is “messy”.
>>
>>
>> libstdc++ is different from glibc.
>>
>> Statically linking libstdc++ in terms of the license is fine.  It is
>> available with the GCC Runtime Library Exception:
>>
>>  https://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html
>>
>>
>> PEP 513 clearly says:
>>
>> GCC <= 4.2.0
>>
>>
>> This excludes GCC 4.1.
>>
>>
>> 4.1 <= 4.2, so it’s included.
>>
>>
>> This excludes GCC 4.1 from being a requirement.  GCC 4.2 would work.
>>
>>
>> Matt
>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://kitware.com/products/protraining.php
>>
>> 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://public.kitware.com/mailman/listinfo/insight-developers
>>
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

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://public.kitware.com/mailman/listinfo/insight-developers


More information about the Community mailing list