Davide,

That makes more sense now. Thanks for the clarification.

I am having trouble figuring out the correct method for build GCC and hiding 
GCCcore module.

I am trying to inspect the module file for GCC with extra dry run and it seems 
to be loading GCCcore/5.4.0 and not GCCcore/.5.4.0. I am passing 
–hide-toolchains=GCCcore and this is not what I expected


Generating module file 
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Core/GCC/5.4.0-2.27.lua, 
with contents:

    help([[The GNU Compiler Collection includes front ends for C, C++, 
Objective-C, Fortran, Java, and Ada,
     as well as libraries for these languages (libstdc++, libgcj,...). - 
Homepage: http://gcc.gnu.org/]])

    whatis([[Description: The GNU Compiler Collection includes front ends for 
C, C++, Objective-C, Fortran, Java, and Ada,
     as well as libraries for these languages (libstdc++, libgcj,...). - 
Homepage: http://gcc.gnu.org/]])

    local root = 
"/nfs/grid/software/testing/RHEL7/easybuild/software/Core/GCC/5.4.0-2.27"

    conflict("GCC")

    if not isloaded("GCCcore/5.4.0") then
        load("GCCcore/5.4.0")
    end

    if not isloaded("binutils/2.27") then
        load("binutils/2.27")
    end
    prepend_path("MODULEPATH", 
"/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/GCC/5.4.0-2.27")


For some reason when I want to build GCC with –hide-toolchains it seems to 
rebuild GCCcore twice which is very inconvenient. It should only perform this 
action once but it is not, I wonder if anyone has been able to figure this out.

hpcswadm@hpcv18$eb GCC-5.4.0-2.27.eb --robot -D --hide-toolchains=GCCcore
== temporary log file in case of crash /tmp/eb-ZNSoSH/easybuild-DSa0KW.log
Dry run: printing build status of easyconfigs and dependencies
CFGS=/hpc/hpcswadm/easybuild
* [x] $CFGS/M4/M4-1.4.17.eb (module: Core | M4/1.4.17)
* [x] $CFGS/Bison/Bison-3.0.4.eb (module: Core | Bison/3.0.4)
* [x] $CFGS/flex/flex-2.6.0.eb (module: Core | flex/2.6.0)
* [x] $CFGS/zlib/zlib-1.2.8.eb (module: Core | zlib/1.2.8)
* [x] $CFGS/binutils/binutils-2.27.eb (module: Core | binutils/2.27)
* [ ] $CFGS/GCCcore/GCCcore-5.4.0.eb (module: Core | GCCcore/5.4.0)
* [ ] $CFGS/GCCcore/GCCcore-5.4.0.eb (module: Core | GCCcore/.5.4.0)
* [ ] $CFGS/M4/M4-1.4.17-GCCcore-5.4.0.eb (module: Compiler/GCCcore/5.4.0 | 
M4/1.4.17)
* [ ] $CFGS/zlib/zlib-1.2.8-GCCcore-5.4.0.eb (module: Compiler/GCCcore/5.4.0 | 
zlib/1.2.8)
* [ ] $CFGS/Bison/Bison-3.0.4-GCCcore-5.4.0.eb (module: Compiler/GCCcore/5.4.0 
| Bison/3.0.4)
* [ ] $CFGS/flex/flex-2.6.0-GCCcore-5.4.0.eb (module: Compiler/GCCcore/5.4.0 | 
flex/2.6.0)
* [ ] $CFGS/binutils/binutils-2.27-GCCcore-5.4.0.eb (module: 
Compiler/GCCcore/5.4.0 | binutils/2.27)
* [ ] $CFGS/GCC/GCC-5.4.0-2.27.eb (module: Core | GCC/5.4.0-2.27)

Another issue I face is whenever I hide a module easybuild can’t find 
dependency for that particular module. I had this problem when I was building 
OpenMPI and built hwloc as hidden module, it couldn’t find it during the build. 
Is there something like –use-existing-module for hidden modules. I had been 
using filter-deps to bypass this issue, but it was not correct. Even though I 
might have had a os package to satisfy dependency some apps did not work 
correctly especially when they used –with-<option>=$EBROOT<package>

From: easybuild-requ...@lists.ugent.be 
[mailto:easybuild-requ...@lists.ugent.be] On Behalf Of Vanzo, Davide
Sent: Wednesday, March 8, 2017 2:09 PM
To: easybuild@lists.ugent.be
Subject: Re: [easybuild] GCCcore build in HMNS

Shahzeb,
Looks good to me. It is expected that GCCcore depends on dummy toolchain built 
software since that is the only toolchain below GCCcore. In other words, you 
need whatever has been built with the system compiler and binutils in order to 
compile GCCcore. Once you have GCCcore built, at this point you will use it to 
compile again M4/Bison/flex/zlib/binutils within the GCCcore toolchain so that 
whatever is built with GCC is completely independent from the underlying OS 
software stack.

--
Davide Vanzo, PhD
Application Developer
Adjunct Assistant Professor of Chemical and Biomolecular Engineering
Advanced Computing Center for Research and Education (ACCRE)
Vanderbilt University - Hill Center 201
www.accre.vanderbilt.edu<http://www.accre.vanderbilt.edu>

On Mar 8 2017, at 12:58 pm, Siddiqui, Shahzeb 
<shahzeb.siddi...@pfizer.com<mailto:shahzeb.siddi...@pfizer.com>> wrote:

Hello,



I want to find out if the build for GCCcore 5.4.0 is suppose to look like this 
under HMNS. I have copied all the files from easybuild repo into my local 
directory because I have disabled robot paths.  One thing I don’t understand 
why there is M4 and binutils built with GCCcore toolchain while it also is a 
dependency in GCCcore. When I tried to build GCCcore-5.4.0 the dependency picks 
up M4 and binutils from dummy toolchain.



I want to hide GCCcore and its deps, is this the correct way to do this.





hpcswadm@hpcv18$eb GCCcore-5.4.0.eb -D --hidden 
--hide-deps=M4,Bison,flex,zlib,binutils

== temporary log file in case of crash /tmp/eb-mZkRzA/easybuild-xv6sEZ.log

Dry run: printing build status of easyconfigs and dependencies

CFGS=/hpc/hpcswadm/easybuild

* [ ] $CFGS/M4/M4-1.4.17.eb (module: Core | M4/.1.4.17)

* [ ] $CFGS/Bison/Bison-3.0.4.eb (module: Core | Bison/.3.0.4)

* [ ] $CFGS/flex/flex-2.6.0.eb (module: Core | flex/.2.6.0)

* [ ] $CFGS/zlib/zlib-1.2.8.eb (module: Core | zlib/.1.2.8)

* [ ] $CFGS/binutils/binutils-2.26.eb (module: Core | binutils/.2.26)

* [ ] $CFGS/GCCcore/GCCcore-5.4.0.eb (module: Core | GCCcore/.5.4.0)



Regards,



Shahzeb Siddiqui

HPC Linux Engineer

B2220-447.2

Groton, CT


Reply via email to