Re: [easybuild] Building foss-2019a fails in binutils-2.31.1.eb (Skylake node)

2019-02-26 Thread Ole Holm Nielsen

On 2/26/19 11:24 AM, Kenneth Hoste wrote:

On 22/02/2019 14:40, Ole Holm Nielsen wrote:

On 2/22/19 1:24 PM, Lars Viklund wrote:
A system C and C++ compiler is documented as a required dependency of 
EasyBuild

if you are to install toolchains with it:

https://easybuild.readthedocs.io/en/latest/Installation.html#required-dependencies 



As such, I would argue that it's not worth declaring it up-front in 
osdependencies
in all software that needs a system compiler, particularly as the 
package

will be named differently on different distros.


Thanks for pointing this out!  I agree with you.

It's all too easy to miss the general EB prerequisites/dependencies 
when installing a new node.  I've added the CentOS 7 specifics to my 
EB Wiki page:
https://wiki.fysik.dtu.dk/niflheim/EasyBuild_modules#easybuild-prerequisites 




One easy thing we could do is make the binutils easyblock check whether 
both 'gcc' and 'g++' are present, and emit a clear warning if they're 
missing?
That would help significantly, since pinpointing the underlying problem 
is clearly not trivial.


Not sure we should make that a hard failure though, as there may be 
situation where not having gcc/g++ is actually fine (e.g. when 'cc' and 
'c++' compilers are available, and can be used to compile binutils).


One other option could be to detect that the build failed because g++ is 
not there (by recognizing the pattern in the configure output or in 
config.log).


Same applies for GCC(core), where you also need a system C++ compiler 
with sufficiently recent versions...


I'm definitely voting for such a check!!  This would have saved me a lot 
of time when binutils refused to build (due to my own error, as it 
turned out).  I don't know the best solution, I'll leave that to the EB 
experts.


Thanks,
Ole


Re: [easybuild] Building foss-2019a fails in binutils-2.31.1.eb (Skylake node)

2019-02-26 Thread Kenneth Hoste

On 22/02/2019 14:40, Ole Holm Nielsen wrote:

On 2/22/19 1:24 PM, Lars Viklund wrote:
A system C and C++ compiler is documented as a required dependency of 
EasyBuild

if you are to install toolchains with it:

   
https://easybuild.readthedocs.io/en/latest/Installation.html#required-dependencies 



As such, I would argue that it's not worth declaring it up-front in 
osdependencies

in all software that needs a system compiler, particularly as the package
will be named differently on different distros.


Thanks for pointing this out!  I agree with you.

It's all too easy to miss the general EB prerequisites/dependencies when 
installing a new node.  I've added the CentOS 7 specifics to my EB Wiki 
page:
https://wiki.fysik.dtu.dk/niflheim/EasyBuild_modules#easybuild-prerequisites 



One easy thing we could do is make the binutils easyblock check whether 
both 'gcc' and 'g++' are present, and emit a clear warning if they're 
missing?
That would help significantly, since pinpointing the underlying problem 
is clearly not trivial.


Not sure we should make that a hard failure though, as there may be 
situation where not having gcc/g++ is actually fine (e.g. when 'cc' and 
'c++' compilers are available, and can be used to compile binutils).


One other option could be to detect that the build failed because g++ is 
not there (by recognizing the pattern in the configure output or in 
config.log).


Same applies for GCC(core), where you also need a system C++ compiler 
with sufficiently recent versions...



regards,

Kenneth




/Ole

From: easybuild-requ...@lists.ugent.be 
 on behalf of Ole Holm Nielsen 


Sent: Friday, February 22, 2019 09:11
To: easybuild@lists.ugent.be
Subject: Re: [easybuild] Building foss-2019a fails in 
binutils-2.31.1.eb (Skylake node)


Hi Olivier,

On 2/20/19 10:18 PM, Olivier Mattelaer wrote:

I actually face the same issue.

The actual error message is this one:

configure: error: in
`/usr/local/Software/build/lm3-w091/binutils/2.31.1/dummy-/binutils-2.31.1/gold': 


configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
yes
checking whether compiling a cross-assembler... no
checking for size_t... checking locale.h usability... make[1]: ***
[configure-gold] Error 1
make[1]: *** Waiting for unfinished jobs


I guess that doing: "yum install gcc-c++" would solve the issue.
But I have not tested yet. But does it make sense to do that?


Your suggestion fixed the problem with binutils: yum install gcc-c++
Now it build correctly, and the foss-2019a build process is continuing.

What's the root cause of this issue?  I'm guessing that the EB file
.../EasyBuild/3.8.1/lib/python2.7/site-packages/easybuild_easyconfigs-3.8.1-py2.7.egg/easybuild/easyconfigs/b/binutils/binutils-2.31.1.eb 



must include gcc-c++ as an osdependencies package.

If this guess is correct, I could open an issue.