Launch error message in Qt5 debug build

Has anyone else seen this, immediately on application launch? Slicer still appears to start ok. Debug build, macOS 10.12, SDK 10.12, Qt5 from upstream. It appeared after the most recent ITK update.

Error: In /opt/bld/s5nj/ITKv4/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSystem.cxx, line 461, function static const char *gdcm::System::GetCurrentProcessFileName()
missing implementation

It looks like ITK disables the relevant flag providing the implementation on mac due to linking errors and/or sdk compatibility policy: https://github.com/InsightSoftwareConsortium/ITK/commit/b853e6ce32676 (and a few others).

@jcfr any idea about this, since you were mentioned in that commit?

Yes, I get that same message on my mac builds (Qt4 and Qt5)

Thanks for reporting the issue, this should be fixed in r26893

In ITK, we removed the need to explicitly linking against CoreFoundation library in GDCM to help build python wheels that would work on different version of OSX.

The functions with this dependency were used only in GDCM executables there are not built in ITK. The current error was due to the call to GlobalInternal::LoadDefaultPaths() done at load time of the GDCM library … that was adding resources path to a global list. Since these resources path are not useful, we commented to call to GlobalInternal::LoadDefaultPaths().

If in the future, we need to link against the library, GDCM build system could be updated to use -framework CoreFoundatation instead of an explicit full path to /path/to/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/CoreFoundation.framework.

2 Likes

Great, thanks. ITK/GDCM could use _NSGetExecutablePath() to do the same thing as the CoreFoundation code is doing, but without SDK pinning (cc @thewtex).

2 Likes