Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUILD] Build will fail on some 32-bit platforms, since configure does not check for a need for libatomic linking #1801

Open
barracuda156 opened this issue Apr 28, 2024 · 0 comments

Comments

@barracuda156
Copy link

Environment

Operating System: macOS 10.6 / ppc
Version / Commit SHA: 11.0.0
Other: gcc 13.2.0

Describe the bug

Linking fails due to missing -latomic.
libatomic is not invoked because configure does not check for such a need.

To Reproduce

Steps to reproduce the behavior:
Build on a platform which needs libatomic for 8-byte atomics.

Expected behavior

CMake should check for hardware support for 8-byte atomics, and if that is not detected, pass -latomic flag.

Additional context

[ 78%] Linking CXX shared library libopenvdb.dylib
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_openvdb/openvdb/work/build/openvdb/openvdb && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/openvdb_shared.dir/link.txt --verbose=ON
/opt/local/bin/g++-mp-13 -pipe -I/opt/local/libexec/boost/1.76/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.76/include -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -dynamiclib -Wl,-headerpad_max_install_names -L/opt/local/libexec/boost/1.76/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -compatibility_version 11.0.0 -current_version 11.0.0 -o libopenvdb.11.0.0.dylib -install_name @rpath/libopenvdb.11.0.dylib CMakeFiles/openvdb_shared.dir/instantiations/VolumeToSpheres.cc.o CMakeFiles/openvdb_shared.dir/instantiations/VolumeToMesh.cc.o CMakeFiles/openvdb_shared.dir/instantiations/VolumeAdvect.cc.o CMakeFiles/openvdb_shared.dir/instantiations/VelocityFields.cc.o CMakeFiles/openvdb_shared.dir/instantiations/VectorTransformer.cc.o CMakeFiles/openvdb_shared.dir/instantiations/ValueTransformer.cc.o CMakeFiles/openvdb_shared.dir/instantiations/TopologyToLevelSet.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Statistics.cc.o CMakeFiles/openvdb_shared.dir/instantiations/SignedFloodFill.cc.o CMakeFiles/openvdb_shared.dir/instantiations/RayTracer.cc.o CMakeFiles/openvdb_shared.dir/instantiations/RayIntersector.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Prune.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PotentialFlow.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PoissonSolver.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PointsToMask.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PointScatter.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PointPartitioner.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PointIndexGrid.cc.o CMakeFiles/openvdb_shared.dir/instantiations/PointAdvect.cc.o CMakeFiles/openvdb_shared.dir/instantiations/ParticlesToLevelSet.cc.o CMakeFiles/openvdb_shared.dir/instantiations/ParticleAtlas.cc.o CMakeFiles/openvdb_shared.dir/instantiations/NodeVisitor.cc.o CMakeFiles/openvdb_shared.dir/instantiations/MultiResGrid.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Morphology.cc.o CMakeFiles/openvdb_shared.dir/instantiations/MeshToVolume.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Merge.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Mask.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetUtil.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetTracker.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetSphere.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetRebuild.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetPlatonic.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetMorph.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetMeasure.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetFracture.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetFilter.cc.o CMakeFiles/openvdb_shared.dir/instantiations/LevelSetAdvect.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Interpolation.cc.o CMakeFiles/openvdb_shared.dir/instantiations/GridTransformer.cc.o CMakeFiles/openvdb_shared.dir/instantiations/GridOperators.cc.o CMakeFiles/openvdb_shared.dir/instantiations/FindActiveValues.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Filter.cc.o CMakeFiles/openvdb_shared.dir/instantiations/FastSweeping.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Diagnostics.cc.o CMakeFiles/openvdb_shared.dir/instantiations/DenseSparseTools.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Dense.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Count.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Composite.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Clip.cc.o CMakeFiles/openvdb_shared.dir/instantiations/ChangeBackground.cc.o CMakeFiles/openvdb_shared.dir/instantiations/Activate.cc.o CMakeFiles/openvdb_shared.dir/Grid.cc.o CMakeFiles/openvdb_shared.dir/io/Archive.cc.o CMakeFiles/openvdb_shared.dir/io/Compression.cc.o CMakeFiles/openvdb_shared.dir/io/DelayedLoadMetadata.cc.o CMakeFiles/openvdb_shared.dir/io/File.cc.o CMakeFiles/openvdb_shared.dir/io/GridDescriptor.cc.o CMakeFiles/openvdb_shared.dir/io/Queue.cc.o CMakeFiles/openvdb_shared.dir/io/Stream.cc.o CMakeFiles/openvdb_shared.dir/io/TempFile.cc.o CMakeFiles/openvdb_shared.dir/math/Half.cc.o CMakeFiles/openvdb_shared.dir/math/Maps.cc.o CMakeFiles/openvdb_shared.dir/math/Proximity.cc.o CMakeFiles/openvdb_shared.dir/math/QuantizedUnitVec.cc.o CMakeFiles/openvdb_shared.dir/math/Transform.cc.o CMakeFiles/openvdb_shared.dir/Metadata.cc.o CMakeFiles/openvdb_shared.dir/MetaMap.cc.o CMakeFiles/openvdb_shared.dir/openvdb.cc.o CMakeFiles/openvdb_shared.dir/Platform.cc.o CMakeFiles/openvdb_shared.dir/points/AttributeArray.cc.o CMakeFiles/openvdb_shared.dir/points/AttributeArrayString.cc.o CMakeFiles/openvdb_shared.dir/points/AttributeGroup.cc.o CMakeFiles/openvdb_shared.dir/points/AttributeSet.cc.o CMakeFiles/openvdb_shared.dir/points/StreamCompression.cc.o CMakeFiles/openvdb_shared.dir/points/points.cc.o CMakeFiles/openvdb_shared.dir/util/Formats.cc.o   -L/opt/local/libexec/onetbb/lib  -Wl,-rpath,/opt/local/libexec/onetbb/lib /opt/local/lib/libImath-3_1.29.10.0.dylib /opt/local/libexec/onetbb/lib/libtbb.dylib /opt/local/lib/libblosc.dylib /opt/local/lib/libz.dylib /opt/local/libexec/boost/1.76/lib/libboost_iostreams-mt.dylib -lm /opt/local/libexec/boost/1.76/lib/libboost_regex-mt.dylib
Undefined symbols:
  "___atomic_load_8", referenced from:
      __ZN3tbb6detail2d115task_group_baseD2Ev in TopologyToLevelSet.cc.o
      __ZN3tbb6detail2d115task_group_baseD2Ev in MeshToVolume.cc.o
      __ZN3tbb6detail2d115task_group_baseD2Ev in FastSweeping.cc.o
      __ZN3tbb6detail2d115task_group_baseD2Ev in Composite.cc.o
      __ZNK7openvdb5v11_02io10MappedFile12createBufferEv in Archive.cc.o
      __ZNK7openvdb5v11_02io10MappedFile12createBufferEv in Archive.cc.o
  "___atomic_store_8", referenced from:
      __ZN7openvdb5v11_02io10MappedFileC4ERKSsb in Archive.cc.o
      __ZNK7openvdb5v11_02io10MappedFile12createBufferEv in Archive.cc.o
  "___atomic_fetch_add_8", referenced from:
      __ZN3tbb6detail2d112wait_context7releaseEj in VolumeToSpheres.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in VolumeToMesh.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in VolumeAdvect.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in VectorTransformer.cc.o
      __ZN3tbb6detail2d112wait_context13add_referenceEx in TopologyToLevelSet.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in SignedFloodFill.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in RayTracer.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in Prune.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in PotentialFlow.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in PoissonSolver.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in MultiResGrid.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Morphology.cc.o
      __ZN3tbb6detail2d112wait_context13add_referenceEx in MeshToVolume.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Merge.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Mask.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetUtil.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetTracker.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetSphere.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetRebuild.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetMorph.cc.o
      __ZN3tbb6detail2d112wait_context13add_referenceEx in LevelSetMeasure.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in LevelSetFracture.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in LevelSetFilter.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in LevelSetAdvect.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in GridTransformer.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in GridOperators.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in FindActiveValues.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Filter.cc.o
      __ZN3tbb6detail2d112wait_context13add_referenceEx in FastSweeping.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Diagnostics.cc.o
      __ZN3tbb6detail2d112wait_context13add_referenceEx in Composite.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in Clip.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in ChangeBackground.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in Activate.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in Archive.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in openvdb.cc.o
      __ZN3tbb6detail2d19fold_treeINS1_9tree_nodeEEEvPNS1_4nodeERKNS1_14execution_dataE in AttributeArrayString.cc.o
      __ZN3tbb6detail2d112wait_context7releaseEj in points.cc.o
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
make[2]: *** [openvdb/openvdb/libopenvdb.11.0.0.dylib] Error 1
@Idclip Idclip changed the title [BUG] Build will fail on some 32-bit platforms, since configure does not check for a need for libatomic linking [BUILD] Build will fail on some 32-bit platforms, since configure does not check for a need for libatomic linking May 7, 2024
@Idclip Idclip removed the bug label May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants