Hi y'all!
I'm currently constructing an image that builds Project Chrono to act as a dev container. I've followed y'all's build script closely, except now I'm just using Ninja instead of Ninja Multi-Platform generator. Multi-platform has some issues building Cuda. However, the build seems to fail due to segmentation faults.
Here is the relevant build step in the Dockerfile. The generation of the Makefile seems to work fine.
## Build
RUN cmake -G "Ninja" -B build -S . \
-DCMAKE_INSTALL_PREFIX:PATH=./install \
-DENABLE_MODULE_IRRLICHT:BOOL=ON \
-DENABLE_MODULE_VSG:BOOL=OFF \
# -DENABLE_MODULE_OPENGL:BOOL=ON \
-DENABLE_MODULE_VEHICLE:BOOL=ON \
-DIOMP5_LIBRARY=${IOMP5_DIR} \
-DENABLE_MODULE_POSTPROCESS:BOOL=ON \
-DENABLE_MODULE_MULTICORE:BOOL=ON \
-DENABLE_MODULE_FSI:BOOL=ON \
-DENABLE_MODULE_GPU:BOOL=ON \
-DENABLE_MODULE_DISTRIBUTED:BOOL=ON \
-DENABLE_MODULE_PARDISO_MKL:BOOL=OFF \
-DENABLE_MODULE_CASCADE:BOOL=OFF \
-DENABLE_MODULE_COSIMULATION:BOOL=ON \
-DENABLE_MODULE_SENSOR:BOOL=ON \
# -DENABLE_MODULE_MODAL:BOOL=ON \
-DENABLE_MODULE_MATLAB:BOOL=OFF \
-DENABLE_MODULE_CSHARP:BOOL=OFF \
# -DENABLE_MODULE_PYTHON:BOOL=ON \
-DENABLE_MODULE_SYNCHRONO:BOOL=OFF \
-DBUILD_BENCHMARKING:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DENABLE_OPENCRG:BOOL=ON \
-DUSE_CUDA_NVRTC:BOOL=ON \
-DUSE_FAST_DDS:BOOL=ON \
-DOptiX_INCLUDE:PATH=./optix/include \
-DSWIG_PATH:PATH=/usr/local/swig \
-DCMAKE_BUILD_TYPE="Release" \
-DCUDA_ARCH_NAME=All \
-DENABLE_CUDA_FIRST_CLASS_LANGUAGE=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
RUN cmake --build build --config Release && \
cd build && \
ninja install
21.38 FAILED: src/chrono/CMakeFiles/ChronoEngine.dir/fea/ChNodeFEAxyzDD.cpp.o
21.38 /usr/bin/c++ -DBP_USE_FIXEDPOINT_INT_32 -DBT_THREADSAFE -DBT_USE_OPENMP -D
CH_API_COMPILE -DCH_IGNORE_DEPRECATED -DChronoEngine_EXPORTS -I/chrono/src -I/ch
rono/build -I/usr/include/eigen3 -I/chrono/src/chrono -I/chrono/src/chrono/colli
sion/bullet -I/chrono/src/chrono/collision/gimpact -I/chrono/src/chrono/../chron
o_thirdparty/HACD -I/chrono/src/chrono/../chrono_thirdparty/HACDv2 -pthread -fop
enmp -pthread -fopenmp -march=native -O3 -DNDEBUG -pthread -fopenmp -march=nat
ive -DNDEBUG -std=gnu++17 -fPIC -Wint-in-bool-context -Wno-sign-compare -Wno-reo
rder -Wno-unused-function -Wno-unused-parameter -Wno-unused-result -MD -MT src/c
hrono/CMakeFiles/ChronoEngine.dir/fea/ChNodeFEAxyzDD.cpp.o -MF src/chrono/CMakeF
iles/ChronoEngine.dir/fea/ChNodeFEAxyzDD.cpp.o.d -o src/chrono/CMakeFiles/Chrono
Engine.dir/fea/ChNodeFEAxyzDD.cpp.o -c /chrono/src/chrono/fea/ChNodeFEAxyzDD.cpp
21.38 In file included from /usr/include/c++/9/unordered_set:46,
21.38 from /chrono/src/chrono/serialization/ChArchive.h:22,
21.38 from /chrono/src/chrono/core/ChMatrix.h:21,
21.38 from /chrono/src/chrono/solver/ChVariables.h:19,
21.38 from /chrono/src/chrono/solver/ChVariablesGenericDiagonal
Mass.h:18,
21.38 from /chrono/src/chrono/fea/ChNodeFEAxyzDD.h:18,
21.38 from /chrono/src/chrono/fea/ChNodeFEAxyzDD.cpp:15:
21.38 /usr/include/c++/9/bits/hashtable.h:711:36: internal compiler error: Segme
ntation fault
21.38 711 | __node_type* __n, size_type __n_elt = 1);
21.38 |
Any idea what could be the issue here? I pull directly from Chrono's Github and the generator doesn't specify any issues. Can specify the rest of the Dockerfile if needed, but it's pretty plain ubuntu 20.04 image installing the required dependencies for the modules I need.