Description
This was with EasyBuild 4.3.3.
We have a system gcc but not a system g++ on our clusters. We have a gcc-libs/4.9.2
module in our existing module setup that contains the full gcc build, and we use this for everything.
EasyBuild needs a g++ in order to build GCCcore
. I added our external gcc-libs/4.9.2
as a builddependency to the easyconfig for binutils-2.35.eb
and GCCcore-10.2.0.eb
.
The build of GCCcore-10.2.0.eb
fails once it gets to a g++ link line for isl
in stage2 of the build - specifying the external dependency does not allow it to correctly link using g++.
It does work if our gcc-libs/4.9.2
module is loaded before running eb
. Our module does this:
#%Module -*- tcl -*-
##
## modulefile
##
## Core GCC libraries for Research Computing OS
##
proc ModulesHelp { } {
puts stderr "\tAdds GCC 4.9.2 runtime to your environment."
}
module-whatis "adds GCC 4.9.2 runtime to your evironment."
conflict gcc-libs
# Pick up GCC 4.9.2 libraries
prepend-path LD_LIBRARY_PATH /shared/ucl/apps/gcc/4.9.2/lib:/shared/ucl/apps/gcc/4.9.2/lib64
prepend-path LIBRARY_PATH /shared/ucl/apps/gcc/4.9.2/lib:/shared/ucl/apps/gcc/4.9.2/lib64
# Unfortunately, for the Intel C++ preprocessor to work, we need to have
# g++ in our path.
prepend-path PATH /shared/ucl/apps/gcc/4.9.2/bin
I have a metadata file for the external module.
I also needed to make isl build verbosely by having a custom easyblock that adds --disable-silent-rules
to. the configure for isl
in gcc.py
.
elif lib == "isl":
cmd = "./configure --prefix=%s --with-pic --disable-shared " % stage2prefix
cmd += "--with-gmp=system --with-gmp-prefix=%s " % stage2prefix
# make it build with normal verbosity
cmd += "--disable-silent-rules "
Debug logs for the failing and successful build are at https://gist.github.com/heatherkellyucl/dcf328975519b15f7cca331b9f55603b - I had to truncate the successful one a little after the successful isl build since the upload kept failing with the full size...
(This is a follow-up to a discussion in Slack).