View Issue Details

IDProjectCategoryView StatusLast Update
0003741Slicer4Core: Building (CMake, Superbuild)public2017-06-10 08:51
Reporterjcfr Assigned Tojcfr  
PriorityhighSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.4.0Fixed in VersionSlicer 4.4.0 
Summary0003741: On MacOSX 10.6, link error when building with VTK6
Description

Reported here some notes about the problem:

//-----------------------------
Dear CMake team,

After transitioning Slicer to VTK6, on MacOSX I am facing a rather annoying issue.

Until now I was ignoring the "duplicate dylib" warning since has explained in [1] it shouldn't prevent project from building successfully.

But today .. I got the following error message:

two level namespace mach-o files can link with at most 253 dylibs, this link would use 287 dylibs

See [2] for full message.

The link command (and modified for easier readability) confirms the duplicated libraries. See enclosed file [3] ... and looking at the list of CMake targets linked agsainst the problematic target .. I can also confirm that there are no duplicates. See enclosed file [4]

The ideal solution would be to fix CMake issue #10179. Especially considering that such problem are becoming more and more relevant with project becoming more modular and their size increasing.

In the short term, I was thinking about these options / dirty hacks:

(1) create a wrapper script that would be invoked instead of the regular compiler. This script would remove the duplication starting with the end of the list.

(2) is there anything that could be done to order the CMake targets to minimize the duplicated libraries ?

(3) modify the ITK and VTK Slicer forks to combine library together ...

Version of CMake: 2.8.10
OS: MacOSX 10.6

Thanks for your help and advices,
Jc

[1] http://public.kitware.com/Bug/view.php?id=10179#c19275

[2] http://slicer.cdash.org/viewBuildError.php?buildid=239124

[3] Slicer_r23343_macosx_modified_link_command_for_MRMLCLIPythonD.txt

[4] Slicer_r23343_cmake_targets_for__MRMLCLIPythonD.txt
//-----------------------------

//-----------------------------
Update:

The issue does NOT occur on MacOSX 10.8 [1] using clang 4.1 [2]

but it occurs on MacOSX 10.6 [3] using g++ 4.2.1 [4].

I will look into updating/install clang on MacOSX 10.6.

[1] $ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.5
BuildVersion: 12F45

[2] $ c++ --version
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix

[3] > sw_vers
ProductName: Mac OS X
ProductVersion: 10.6.8
BuildVersion: 10K549

[4] > c++ --version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
//-----------------------------

//-----------------------------
Update 0000002:

On MacOSX 10.6 it seems that the version of g++ is compiled universal binary [1] and probably use the "nlist" structure that limit the the number of entries to 253. See [2]. Considering that the generated library are of type Mach-O 64-bit [3], that seems like a reasonable explanation

Let's also note that hardware running the MacOSX 10.6 is a "Mac Pro (Mid 2010)" which has the 64-bit kernel enabled by default [4] ... I also tried to force it using systemsetup. See [5]

To compare, I checked the type of executable on the MacOSX 10.8 and it return a single architecture. See [6]

[1] > file /usr/bin/c++
/usr/bin/c++: Mach-O universal binary with 3 architectures
/usr/bin/c++ (for architecture i386): Mach-O executable i386
/usr/bin/c++ (for architecture ppc7400): Mach-O executable ppc
/usr/bin/c++ (for architecture x86_64): Mach-O 64-bit executable x86_64

[2] From https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html#//apple_ref/doc/uid/20001298-BAJECHFH

8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------
If this file is a two-level namespace image (that is, if the MH_TWOLEVEL flag of the mach_header structure is set), the high 8 bits of n_desc specify the number of the library in which this undefined symbol is defined. Use the macro GET_LIBRARY_ORDINAL to obtain this value and the macro SET_LIBRARY_ORDINAL to set it. Zero specifies the current image. 1 through 253 specify the library number according to the order of LC_LOAD_DYLIB commands in the file. The value 254 is used for undefined symbols that are to be dynamically looked up (supported only in OS X v10.3 and later). For plug–ins that load symbols from the executable program they are linked against, 255 specifies the executable image. For flat namespace images, the high 8 bits must be 0.
8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------8<------

[3] > file VTKv6-build/lib/libvtkCommonCorePython27D-6.1.dylib
VTKv6-build/lib/libvtkCommonCorePython27D-6.1.dylib: Mach-O 64-bit dynamically linked shared library x86_64

[4] http://support.apple.com/kb/HT3770

[5] http://support.apple.com/kb/HT3773

[6] $ file /usr/bin/c++
/usr/bin/c++: Mach-O 64-bit executable x86_64
//-----------------------------

//-----------------------------
Update 0000003:

The nlist_64 structure [1] also specifies a small number (254) of library entries. See below.

My first conclusion was incorrect and didn't really make sense.

Instead, I think that newer version of the compiler (clang) are smarter about duplicated libraries and filter them out.

8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
If this file is a two-level namespace image (that is, if the MH_TWOLEVEL flag of the mach_header structure is set), the high 8 bits of n_desc specify the number of the library in which this symbol is defined. Use the macro GET_LIBRARY_ORDINAL to obtain this value and the macro SET_LIBRARY_ORDINAL to set it. Zero specifies the current image. 1 through 254 specify the library number according to the order of LC_LOAD_DYLIB commands in the file. For plug–ins that load symbols from the executable program they are linked against, 255 specifies the executable image. For flat namespace images, the high 8 bits must be 0.
8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----

[1] https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html#//apple_ref/doc/uid/20001298-CJBDFJFA
//-----------------------------

//-----------------------------
Update 0000004:

I installed llvm 3.1, upgraded to CMake 2.8.12. and started a build. See [1]

Will keep you posted.

Thanks
Jc

[1] http://slicer.cdash.org/index.php?project=Slicer4#Continuous
//-----------------------------

TagsNo tags attached.

Relationships

related to 0003809 closedjcfr slicer hangs on startup and can lead to machine crashing 

Related Changesets

Import 2017-06-07 23:51:09: master 2ec6b84f

2014-06-18 19:03:39

jcfr

Details Diff
COMP: On MacOSX, waiting issue 0003741 is solved uses VTK 5.10

As illustrated in the bug report [1], the maximum number of linked libraries
is reached on MacOSX 10.6 (see below for an example of message) but there
are no problem on MacOSX 10.8 (at least when targeting 10.9).

// ---------
ld: warning: duplicate dylib /path/to ...
[...]
ld: warning: duplicate dylib /path/to ...
two level namespace mach-o files can link with at most 253 dylibs, this link would use 287 dylibs
// ---------

Waiting we come up with a solution or understand better the scope of the
problem, this commit force the VTK version to 5.10.

[1] http://na-mic.org/Mantis/view.php?id=3741

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23344 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMakeLists.txt Diff File

Import 2017-06-07 23:51:09: master 3619c674

2014-06-20 21:47:38

jcfr

Details Diff
COMP: Specify minimum set of VTKv6 libraries. Fixes 0003741

The VTK utility: Utilities/Maintenance/WhatModulesVTK.py discovers
which modules are used in a project. This patch modifies the Slicer
CMakeLists.txt file to only load the vtk modules used by Slicer. This
should reduce the number of libraries being linked.

This commit also updates CTK project including a patch reducing
the number of library associated with CTKImageProcessingITKCore library.

// ----------------
$ git shortlog 48ef9aeb8..282abc7 --no-merges
Jean-Christophe Fillion-Robin (1):
CTKImageProcessingITKCore - With ITKv4, link only to the required libraries
// ----------------

Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

From: Bill Lorensen <bill.lorensen@gmail.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23350 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMakeLists.txt Diff File
mod - SuperBuild/External_CTK.cmake Diff File

Import 2017-06-07 23:51:09: master dcf78181

2014-06-20 22:07:09

jcfr

Details Diff
COMP: Re-enable VTKv6 on MacOSX.

Since following commit r23350, issue 0003741 is resolved, this commit
re-enables VTKv6 on MacOSX.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23352 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMakeLists.txt Diff File

Import 2017-06-07 23:51:09: master 211b7e68

2014-06-20 22:17:55

jcfr

Details Diff
COMP: On MacOSX, waiting issue 0003741 is *really* solved uses VTK 5.10

It turns out that the test build I initiated managed to go way beyond
the original stopping point [See r23344]. That said, there are still
the same issue when building SubjectHierarchy, Annotations module ...

This commits reverts back to VTK 5.10 for MacOSX.

The solution gonna be to continue the work initiated in [1] and
remove the top level call to "find_package()" and instead have
every Slicer libraries/modules including his set of direct dependencies.

[1] http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/015671.html

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23353 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMakeLists.txt Diff File

Import 2017-06-07 23:51:09: master f0f0df61

2014-07-03 21:34:23

jcfr

Details Diff
COMP: Move most of find_package calls into each Slicer sub-project.

To help address issue 0003741 [1], call to find_package associated to CTK,
DCMTK, ITK and SlicerExecutionModel have been moved in every Slicer
sub project, library or module expecting it.

This allows to reduce both the number of include directories and
the number of libraries passed to the compiler.

Moving forward, every Slicer sub project, library or module will be
responsible to call find_package (optionally specifying a list of
components) and (if it applies) include the associated "use file".

Note that call to find_package(VTK) is still done at the top-level, before
moving the call to the expected sub-directories, the CTKConfig.cmake
will have to be updated to call find_package(VTK) specifying the required
components where it is needed.

[1] http://na-mic.org/Mantis/view.php?id=3741

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23413 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/CLI/CMakeLists.txt Diff File
mod - Base/Logic/CMakeLists.txt Diff File
mod - Base/QTApp/CMakeLists.txt Diff File
mod - Base/QTCLI/CMakeLists.txt Diff File
mod - Base/QTCLI/Testing/CMakeLists.txt Diff File
mod - Base/QTCore/CMakeLists.txt Diff File
mod - Base/QTGUI/CMakeLists.txt Diff File
mod - CMake/SlicerMacroBuildBaseQtLibrary.cmake Diff File
mod - CMake/SlicerMacroPythonWrapModuleVTKLibrary.cmake Diff File
mod - CMake/vtkMacroKitPythonWrap.cmake Diff File
mod - CMakeLists.txt Diff File
mod - Extensions/Testing/CLIExtensionTemplate/CLIModuleTemplate/CMakeLists.txt Diff File
mod - Extensions/Testing/CLIExtensionTemplate/CLIModuleTemplate/Testing/Cxx/CMakeLists.txt Diff File
mod - Extensions/Testing/SuperBuildExtensionTemplate/SuperCLIModuleTemplate/CMakeLists.txt Diff File
mod - Extensions/Testing/SuperBuildExtensionTemplate/SuperCLIModuleTemplate/Testing/Cxx/CMakeLists.txt Diff File
mod - Libs/FreeSurfer/CMakeLists.txt Diff File
mod - Libs/ITKFactoryRegistration/CMakeLists.txt Diff File
mod - Libs/MGHImageIO/CMakeLists.txt Diff File
mod - Libs/MRML/CLI/CMakeLists.txt Diff File
mod - Libs/MRML/Core/CMakeLists.txt Diff File
mod - Libs/MRML/DisplayableManager/CMakeLists.txt Diff File
mod - Libs/MRML/IDImageIO/CMakeLists.txt Diff File
mod - Libs/MRML/Logic/CMakeLists.txt Diff File
mod - Libs/MRML/Logic/Testing/Cxx/CMakeLists.txt Diff File
mod - Libs/MRML/Widgets/CMakeLists.txt Diff File
mod - Libs/vtkITK/CMakeLists.txt Diff File
mod - Libs/vtkTeem/CMakeLists.txt Diff File
mod - Modules/CLI/ACPCTransform/CMakeLists.txt Diff File
mod - Modules/CLI/ACPCTransform/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/AddScalarVolumes/CMakeLists.txt Diff File
mod - Modules/CLI/AddScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/AffineRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/AffineRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/BSplineDeformableRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/BSplineDeformableRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/BSplineToDeformationField/CMakeLists.txt Diff File
mod - Modules/CLI/BlobDetection/CMakeLists.txt Diff File
mod - Modules/CLI/BlobDetection/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CMakeLists.txt Diff File
mod - Modules/CLI/CastScalarVolume/CMakeLists.txt Diff File
mod - Modules/CLI/CastScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CheckerBoardFilter/CMakeLists.txt Diff File
mod - Modules/CLI/CheckerBoardFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ConnectedComponent/CMakeLists.txt Diff File
mod - Modules/CLI/ConnectedComponent/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CreateDICOMSeries/CMakeLists.txt Diff File
mod - Modules/CLI/CreateDICOMSeries/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CurvatureAnisotropicDiffusion/CMakeLists.txt Diff File
mod - Modules/CLI/CurvatureAnisotropicDiffusion/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DTIImportExport/CMakeLists.txt Diff File
mod - Modules/CLI/DWIJointRicianLMMSEFilter/CMakeLists.txt Diff File
mod - Modules/CLI/DWIRicianLMMSEFilter/CMakeLists.txt Diff File
mod - Modules/CLI/DWIToDTIEstimation/CMakeLists.txt Diff File
mod - Modules/CLI/DWIToDTIEstimation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DWIUnbiasedNonLocalMeansFilter/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorScalarMeasurements/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorScalarMeasurements/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorTest/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorTest/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionWeightedVolumeMasking/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionWeightedVolumeMasking/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ExecutionModelTour/CMakeLists.txt Diff File
mod - Modules/CLI/ExecutionModelTour/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ExpertAutomatedRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/ExtractSkeleton/CMakeLists.txt Diff File
mod - Modules/CLI/FiberBundleLabelSelect/CMakeLists.txt Diff File
mod - Modules/CLI/FiducialRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/FiducialRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/FreesurferSurfaceSectionExtraction/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GaussianBlurImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/GaussianBlurImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GradientAnisotropicDiffusion/CMakeLists.txt Diff File
mod - Modules/CLI/GradientAnisotropicDiffusion/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleFillHoleImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleFillHoleImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleGrindPeakImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleGrindPeakImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleModelMaker/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleModelMaker/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/HistogramMatching/CMakeLists.txt Diff File
mod - Modules/CLI/HistogramMatching/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ImageLabelCombine/CMakeLists.txt Diff File
mod - Modules/CLI/ImageLabelCombine/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/LabelMapSmoothing/CMakeLists.txt Diff File
mod - Modules/CLI/LabelMapSmoothing/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/LinearRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/LinearRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MRIBiasFieldCorrection/CMakeLists.txt Diff File
mod - Modules/CLI/MaskScalarVolume/CMakeLists.txt Diff File
mod - Modules/CLI/MaskScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MedianImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/MedianImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MergeModels/CMakeLists.txt Diff File
mod - Modules/CLI/MergeModels/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ModelMaker/CMakeLists.txt Diff File
mod - Modules/CLI/ModelMaker/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ModelToLabelMap/CMakeLists.txt Diff File
mod - Modules/CLI/ModelToLabelMap/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MultiResolutionAffineRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/MultiResolutionAffineRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MultiplyScalarVolumes/CMakeLists.txt Diff File
mod - Modules/CLI/MultiplyScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/N4ITKBiasFieldCorrection/CMakeLists.txt Diff File
mod - Modules/CLI/N4ITKBiasFieldCorrection/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/OrientScalarVolume/CMakeLists.txt Diff File
mod - Modules/CLI/OrientScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/OtsuThresholdImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/OtsuThresholdImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/OtsuThresholdSegmentation/CMakeLists.txt Diff File
mod - Modules/CLI/OtsuThresholdSegmentation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/CMakeLists.txt Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ProbeVolumeWithModel/CMakeLists.txt Diff File
mod - Modules/CLI/ROITest/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleDTIVolume/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleDTIVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVectorDWIVolume/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVectorDWIVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVolume/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/RigidRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/RigidRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/RobustStatisticsSegmenter/CMakeLists.txt Diff File
mod - Modules/CLI/RobustStatisticsSegmenter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/SimpleRegionGrowingSegmentation/CMakeLists.txt Diff File
mod - Modules/CLI/SimpleRegionGrowingSegmentation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/SubtractScalarVolumes/CMakeLists.txt Diff File
mod - Modules/CLI/SubtractScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/TestGridTransformRegistration/CMakeLists.txt Diff File
mod - Modules/CLI/TestGridTransformRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ThresholdScalarVolume/CMakeLists.txt Diff File
mod - Modules/CLI/ThresholdScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/TractographyLabelMapSeeding/CMakeLists.txt Diff File
mod - Modules/CLI/TractographyLabelMapSeeding/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/VotingBinaryHoleFillingImageFilter/CMakeLists.txt Diff File
mod - Modules/CLI/VotingBinaryHoleFillingImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/Core/CMakeLists.txt Diff File
mod - Modules/Loadable/TractographyDisplay/MRML/CMakeLists.txt Diff File
mod - Modules/Loadable/VolumeRendering/Testing/Cxx/CMakeLists.txt Diff File
mod - Modules/Loadable/Volumes/Testing/Cxx/CMakeLists.txt Diff File
mod - Modules/Scripted/EditorLib/Logic/CMakeLists.txt Diff File
mod - SuperBuild/External_ITKv4.cmake Diff File
mod - Utilities/Templates/Modules/CLI/CMakeLists.txt Diff File
mod - Utilities/Templates/Modules/CLI/Testing/Cxx/CMakeLists.txt Diff File

Import 2017-06-07 23:51:09: master c1dd6356

2014-07-29 22:32:01

jcfr

Details Diff
COMP: Specify list VTK_MAKE_INSTANTIATOR3 input as list of cxx files only.

This commit fixes a build error introduced by kitware/VTK@5c3241b9d8
It ensures there are no duplicated entries in the instantiator files.

The error (reported below) was first discovered when building Slicer
on MacOSX 10.6 with the option VTK_ENABLE_KITS while working on issue
0003741.

// ------------------------
$ make vtkSlicerTransformsModuleMRMLDisplayableManager/fast
[ 59%] Building CXX object Modules/Loadable/Transforms/MRMLDM/CMakeFiles/vtkSlicerTransformsModuleMRMLDisplayableManager.dir/TransformsInstantiator.cxx.o
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx: In function 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()':
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:10: error: redefinition of 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()'
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:9: error: 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()' previously defined here
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx: In function 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()':
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:12: error: redefinition of 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()'
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:11: error: 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()' previously defined here
make[1]: *** [Modules/Loadable/Transforms/MRMLDM/CMakeFiles/vtkSlicerTransformsModuleMRMLDisplayableManager.dir/TransformsInstantiator.cxx.o] Error 1
make: *** [vtkSlicerTransformsModuleMRMLDisplayableManager/fast] Error 2
// ------------------------

The content of the associated instantiator file was:

// ---------------
$ cat Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx

[...]

vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager2D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager2D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager3D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager3D)

[...]
// ---------------

This commit avoid the duplicated entries in the instantiator file.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23508 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Annotations/MRMLDM/CMakeLists.txt Diff File
mod - Modules/Loadable/TractographyDisplay/MRMLDM/CMakeLists.txt Diff File
mod - Modules/Loadable/Transforms/MRMLDM/CMakeLists.txt Diff File
mod - Modules/Loadable/VolumeRendering/MRMLDM/CMakeLists.txt Diff File

Import 2017-06-07 23:51:09: master 6611ef5f

2014-07-29 23:00:19

jcfr

Details Diff
COMP: Fix VTK6 link error on MacOSX 10.6. Fixes 0003741

To reduce the number of libraries passed to the linker, this commit build
VTK6 with the VTK_ENABLE_KITS option enabled.

If building on MacOSX 10.6 without CMake 3.0, it also updated the build
system to output a fatal error message explaining that a more recent
version of CMake is required.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23509 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMakeLists.txt Diff File
mod - SuperBuild/External_VTKv6.cmake Diff File

Issue History

Date Modified Username Field Change
2014-06-18 15:05 jcfr New Issue
2014-06-18 15:05 jcfr Status new => assigned
2014-06-18 15:05 jcfr Assigned To => jcfr
2014-07-29 18:44 jcfr Note Added: 0012290
2014-07-29 18:44 jcfr Priority normal => high
2014-07-29 18:44 jcfr Severity minor => major
2014-07-29 18:44 jcfr Target Version => Slicer 4.4.0
2014-07-30 14:10 jcfr Note Added: 0012299
2014-07-30 14:10 jcfr Status assigned => resolved
2014-07-30 14:10 jcfr Fixed in Version => Slicer 4.4.0
2014-07-30 14:10 jcfr Resolution open => fixed
2014-08-29 07:48 jcfr Status resolved => closed
2014-08-29 07:49 jcfr Relationship added related to 0003809
2017-06-10 08:51 jcfr Changeset attached => Slicer master 6611ef5f
2017-06-10 08:51 jcfr Changeset attached => Slicer master c1dd6356
2017-06-10 08:51 jcfr Changeset attached => Slicer master f0f0df61
2017-06-10 08:51 jcfr Changeset attached => Slicer master 211b7e68
2017-06-10 08:51 jcfr Changeset attached => Slicer master dcf78181
2017-06-10 08:51 jcfr Changeset attached => Slicer master 3619c674
2017-06-10 08:51 jcfr Changeset attached => Slicer master 2ec6b84f