Skip to content

GCCcore fails to build isl when an external module provides g++ #3662

Open
@heatherkellyucl

Description

@heatherkellyucl

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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions