Paraview 5.8.0 compile error on RHEL 8.2
I'm trying to build the Fedora EPEL paraview package for EPEL8 and getting:
[ 96%] Linking CXX executable ../../bin/pvrenderserver
cd /builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/Clients/CommandLineExecutables && /usr/bin/cmake -E cmake_link_script CMakeFiles/pvrenderserver.dir/link.txt --verbose=1
/usr/bin/c++ -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DNDEBUG -Wl,-lc -Wl,-lc -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld CMakeFiles/pvrenderserver.dir/pvrenderserver.cxx.o -o ../../bin/pvrenderserver -Wl,-rpath,/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview:/usr/lib64/openmpi/lib: ../../lib/paraview/libvtkRemotingApplication.so.5.8 ../../lib/paraview/libvtkUtilitiesPythonInitializer.so.5.8 ../../lib/paraview/libvtkRemotingServerManager.so.5.8 /usr/lib64/libprotobuf.so ../../lib/paraview/libvtkRemotingCore.so.5.8 ../../lib/paraview/libvtkPythonInterpreter.so.5.8 /usr/lib64/libpython3.6m.so ../../lib/paraview/libvtkRemotingClientServerStream.so.5.8 ../../lib/paraview/libvtkPVVTKExtensionsCore.so.5.8 /usr/lib64/libjsoncpp.so ../../lib/paraview/libvtkIOXML.so.5.8 ../../lib/paraview/libvtkIOXMLParser.so.5.8 ../../lib/paraview/libvtkParallelCore.so.5.8 ../../lib/paraview/libvtkCommonExecutionModel.so.5.8 ../../lib/paraview/libvtkCommonDataModel.so.5.8 ../../lib/paraview/libvtkCommonMisc.so.5.8 ../../lib/paraview/libvtkCommonTransforms.so.5.8 ../../lib/paraview/libvtkCommonMath.so.5.8 ../../lib/paraview/libvtkCommonCore.so.5.8 -lpthread ../../lib/paraview/libvtksys.so.5.8 -ldl -Wl,-rpath-link,/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview:/usr/lib64/openmpi/lib
make[2]: Leaving directory '/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi'
/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview/libvtkIOParallelExodus.so.1: undefined reference to `ompi_mpi_cxx_op_intercept'
/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview/libvtkIOParallelExodus.so.1: undefined reference to `MPI::Win::Free()'
/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview/libvtkIOParallelExodus.so.1: undefined reference to `MPI::Datatype::Free()'
/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview/libvtkIOParallelExodus.so.1: undefined reference to `MPI::Comm::Comm()'
collect2: error: ld returned 1 exit status
and indeed it appears that libvtkIOParallelExodus.so.1 is not being linked to the mpi library:
/usr/bin/c++ -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DNDEBUG -Wl,-lc -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libvtkIOParallelExodus.so.1 -o ../../../lib/paraview/libvtkIOParallelExodus.so.5.8 CMakeFiles/IOParallelExodus.dir/vtkIOParallelExodusObjectFactory.cxx.o CMakeFiles/IOParallelExodus.dir/vtkPExodusIIReader.cxx.o CMakeFiles/IOParallelExodus.dir/vtkPExodusIIWriter.cxx.o -Wl,-rpath,/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview:/usr/lib64/openmpi/lib: ../../../lib/paraview/libvtkIOExodus.so.5.8 ../../../lib/paraview/libvtkFiltersCore.so.5.8 ../../../lib/paraview/libvtkParallelCore.so.5.8 ../../../lib/paraview/libvtkexodusII.so.5.8 /usr/lib64/openmpi/lib/libnetcdf.so ../../../lib/paraview/libvtkIOXMLParser.so.5.8 ../../../lib/paraview/libvtkIOCore.so.5.8 ../../../lib/paraview/libvtkCommonExecutionModel.so.5.8 ../../../lib/paraview/libvtkCommonDataModel.so.5.8 ../../../lib/paraview/libvtkCommonTransforms.so.5.8 ../../../lib/paraview/libvtkCommonMisc.so.5.8 ../../../lib/paraview/libvtkCommonMath.so.5.8 ../../../lib/paraview/libvtkCommonCore.so.5.8 ../../../lib/paraview/libvtksys.so.5.8 -ldl -lpthread -Wl,-rpath-link,/builddir/build/BUILD/ParaView-v5.8.0/x86_64-redhat-linux-gnu-openmpi/lib/paraview
There are some differences between the compile flags on Fedora 33 and EPEL 8 that seem to account for why this compiles on Fedora 33 (likely -Wl,--as-needed on F33).