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.