Skip to content
Snippets Groups Projects
BuildIssues.txt 4.74 KiB
Newer Older
  • Learn to ignore specific revisions
  • ==================
    Known Build Issues
    ==================
    
    
    ---------------------
    Intel MPI (Gcc/Clang)
    ---------------------
    
      Either I_MPI_ROOT or MPI_ROOT can be used to specify the Intel-MPI
      installation directory path.
    
      The ThirdParty build of ptscotch uses `mpiicc` for Intel-MPI
      instead of the usual `mpicc`.
      When gcc or clang are used, it is highly likely that the
      I_MPI_CC environment variable also needs to be set accordingly.
    
      See `mpiicc -help` for more information about environment variables.
    
    
    
    --------------
    Intel Compiler
    --------------
    
      Since OpenFOAM uses C++11, a fairly recent version is required.
    
    mark's avatar
    mark committed
      The Intel compiler - icc (ICC) 17.0.1 20161005 is ok, but the
      initial release - icc (ICC) 17.0.0 20160721 - has a bug that
    
      will result in these types of error messages.
    
        MatrixSpaceI.H(492): error: no instance of overloaded function
        "Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::Block<SubTensor,
        BRowStart, BColStart>::operator=" matches the specified type
    
    
    ---
    VTK
    ---
    
    If using the runTimePostProcessing to create on-the-fly images, you
    
    can simply just compile ParaView and these libraries will be used.
    
    mark's avatar
    mark committed
    If you elect to use a separate VTK compilation (for example for
    
    off-screen rendering), it is advisable to reuse the VTK libraries that
    
    are provided with ParaView by making an appropriate symlink
    
    mark's avatar
    mark committed
    prior to using makeVTK. This doesn't just reduce disk-space, but works
    
    much better than using the VTK tar file.
    
    Using runTimePostProcessing with the 'plain' VTK libraries does
    
    mark's avatar
    mark committed
    generally work, but does not exit cleanly:
    
    
        symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonExecutionModel-7.1.so.1:
        undefined symbol: _ZN33vtkFilteringInformationKeyManager13ClassFinalizeEv
    
        symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonDataModel-7.1.so.1:
        undefined symbol: _ZN49vtkInformationQuadratureSchemeDefinitionVectorKeyD1Ev
    
    
    mark's avatar
    mark committed
    This error appears to be suppressed if VTK is compiled with a Debug build-type.
    
    
    -------------------------
    Building on older systems
    -------------------------
    
    If the system gcc is too old for building OpenFOAM, a third-party gcc or
    clang/llvm installation can be used. If building clang/llvm, note that
    there are also minimum gcc/g++ requirements there:
    
       Min gcc/g++
       ===========   ==========
        4.4          llvm-3.4.2
        4.7          llvm-3.5.2 - llvm-3.7.0
    
    
    If your system compiler is too old to build the minimum required gcc or
    clang/llvm, it is just simply too old.
    
    
    ---------------------------------
    ThirdParty clang without gmp/mpfr
    ---------------------------------
    
    If using ThirdParty clang without gmp/mpfr, the ThirdParty makeCGAL
    script will need to be run manually and specify that there is no
    gmp/mpfr. Eg,
    
        cd $WM_THIRD_PARTY_DIR
        ./makeCGAL gmp-none mpfr-none
    
    Subequent compilation with Allwmake will now run largely without any
    problems, except that the components linking against CGAL
    (foamyMesh and surfaceBooleanFeatures) will also try to link against
    a nonexistent mpfr library. As a workaround, the link-dependency can
    be removed in wmake/rules/General/CGAL :
    
        CGAL_LIBS = \
            -L$(BOOST_ARCH_PATH)/lib \
            -L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
            -L$(CGAL_ARCH_PATH)/lib \
            -L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
            -lCGAL
    
    This is a temporary inconvenience until a more robust solution is found.
    
    
    
    -------------------------
    Building with spack
    -------------------------
    
    If you are building with spack, note that the depends_on for paraview
    resolves poorly. The +qt dependency (for building the reader module)
    may need to be specified as a preference by including the following in
    your `~/.spack/packages.yaml` file:
    
        packages:
            paraview:
                variants: +qt
    
    It appears that spack will otherwise ignore any paraview+qt version
    and attempt to install a paraview~qt version instead.
    
    
    ---------------------------
    Building on Darwin (Mac-OS)
    ---------------------------
    
    Support for Darwin is incomplete, but has been provisioned for.
    
    The following are typical (as of yet) unresolved issues.
    
    * Scotch, ptscotch:
      - The librt linkage is required for Linux, but not for Darwin.
    
      Current resolution:
      Edit or patch
          src/parallel/decompose/ptscotchDecomp/Make/options
          src/parallel/decompose/scotchDecomp/Make/options
    
      to remove the '-lrt' library
    
    * CGAL:
      - ThirdParty CGAL will normally need to be compiled without mpfr/gmp.
        This should be done manually prior to building OpenFOAM or other
        ThirdParty. Eg,
    
            cd $WM_THIRD_PARTY_DIR
            ./makeCGAL gmp-none mpfr-none
    
      The erroneous references to gmp/mpfr library can be directly removed
      from the wmake/rules/General/CGAL, but it is more advisable to
      override them instead in the wmake/rules/darwin64Clang/CGAL file.