Hi John,
/usr/include/stdlib.h is provided by glibc, not by GCC:
$ rpm -q --whatprovides /usr/include/stdlib.h
glibc-headers-2.17-196.el7.x86_64
So it makes sense that the cstdlib header from the EasyBuild-provided
GCC picks it up, since we rely on the glibc provided by the OS.
Since you mention that it works without EasyBuild, my first guess would
be that the build environment set by EasyBuild somehow causes the issue.
Can you try this:
* run "eb RELION-2.0.3-foss-2016b.eb -x", and copy-paste the commands to
define the build environment as EasyBuild does
* see if you can reproduce the issue outside of EasyBuild using that
build environment
* if so, try to pinpoint which environment variable is the culprit
The only thing I can think of is that EasyBuild defines $OMPI_CXX to
g++, but I don't see how that could cause the problem you are seeing...
regards,
Kenneth
On 04/12/2017 21:02, Dey, John F wrote:
I am trying to creating a new easybuild easyconfig for RELION 2.0.3
with Easybuild 3.4.1. My build environment is Ubuntu 14.04 and
foss-2016b. RELION builds without issues in this environment but
fails build with Easybuild.
Easybuild easyconfig for RELION is here:
https://github.com/FredHutch/easybuild-life-sciences/blob/master/fh_easyconfigs/RELION-2.0.3-foss-2016b.eb
Complete log file is here.
https://gist.github.com/fizwit/cc4a24159ff1e8815e6c6eb9c6492996
RELION uses mpicxx to compile OpenMPI libs. The build errors
indicate that mpicxx is using the OS header files in place of the CXX
headers from GCCcore/5.4.0. Why would easybuild pick a C header and
not the CXX header? Thanks for any ideas or help you can provide.
Build errors:
/app/easybuild/software/OpenMPI/1.10.3-GCC-5.4.0-2.26/bin/mpicxx
-DHAVE_SINCOS
-DINSTALL_LIBRARY_DIR=/app/easybuild/software/RELION/2.0.3-foss-2016b/lib/
-DSOURCE_DIR=/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3/src/
-Drelion_lib_EXPORTS
-I/app/easybuild/software/OpenMPI/1.10.3-GCC-5.4.0-2.26/include
-I/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3
-I/app/easybuild/software/FFTW/3.3.4-gompi-2016b/include
-I/app/easybuild/software/FLTK/1.3.3-foss-2016b/include
-DOMPI_IGNORE_CXX_SEEK -O2 -march=native -O3 -DNDEBUG -fPIC -o
CMakeFiles/relion_lib.dir/__/autopicker_mpi.cpp.o -c
/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3/src/autopicker_mpi.cpp
In file included from
/app/easybuild/software/GCCcore/5.4.0/include/c++/5.4.0/cstdlib:72:0,
from
/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3/src/mpi.h:49,
from
/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3/src/autopicker_mpi.h:11,
from
/app/easybuild/build/RELION/2.0.3/foss-2016b/relion-2.0.3/src/autopicker_mpi.cpp:21:
/usr/include/stdlib.h:345:5: error: ‘int32_t’ does not name a type
int32_t *fptr; /* Front pointer. */
^