I am attempting to build a third-party application, https://github.com/idaholab/moose, using the instructions at http://www.mooseframework.org/getting-started/.
To adapt to our Intel Parallel Studio Cluster ed., the configure command in the main build script of this application (scripts/update_and_rebuild_libmesh.sh) was modified with these lines:
--with-thread-model=tbb \
--with-tbb=/nopt/intel/17.0.5/tbb \
CC=mpiicc CXX=mpiicpc FC=mpiifort F77=mpif77 \
CFLAGS="-axCORE-AVX2,AVX" \
CXXFLAGS="-axCORE-AVX2,AVX" \
FCFLAGS="-axCORE-AVX2,AVX" F77FLAGS="-axCORE-AVX2,AVX" \
LDFLAGS="-Wl,-rpath-link,/nopt/intel/psxe2017u2/compilers_and_libraries_2017.5.239/linux/compiler/lib/intel64" \
PETSC_DIR=$HOME/petsc-3.8 PETSC_ARCH=impi-intel \
I load the Intel environment on top of an Anaconda version 5 build environment, but the same thing happens on top of a standalone GCC 7.2 installation.
The build proceeds fine until:
...
CXX src/systems/libmesh_dbg_la-fem_context.lo
/nopt/nrel/apps/anaconda/5.0.1-cos7/bin/../x86_64-conda_cos6-linux-gnu/include/c++/7.2.0/ext/new_allocator.h(136): error: function "std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2> &) [with _T1=const libMesh::FEType, _T2=std::unique_ptr<libMesh::FEAbstract, std::default_delete<libMesh::FEAbstract>>]" (declared at line 292 of "/nopt/nrel/apps/anaconda/5.0.1-cos7/bin/../x86_64-conda_cos6-linux-gnu/include/c++/7.2.0/bits/stl_pair.h") cannot be referenced -- it is a deleted function
I have tried adding to CFLAGS and CXXFLAGS "-no-gcc-include-dir -use-intel-optimized-headers", but the identical error is generated.
The developers claim that their tests with the same Intel compilers pass fine.
Questions,
1. Is there an obvious workaround that uses the same commands?
2. Is there a way to substitute Intel headers and avoid the GCC headers, in case there is an inconsistency?
Linux login4 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Thanks,
Chris