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.  */

     ^


Reply via email to