Hi,
I realized the dummy toolchain option, and was able to get the building going.
I now get a different error:
~~~
$ module add ...
$ eb CP2K-4.1-intel-2016b.eb -r
--filter-deps=Autotools,binutils,flex,GCCcore,GMP,libmatheval,libtool,M4,pkg-config,zlib
--try-toolchain=dummy,dummy
== FAILED: Installation ended unsuccessfully (build directory:
/home/user/tools/easybuild/build/Libint/1.1.6/dummy-dummy): build failed (first 300 chars): cmd "aclocal -I
lib/autoconf && libtoolize && autoconf && ./configure
--prefix=/home/user/tools/easybuild/software/Libint/1.1.6 --enable-deriv --enable-r12 --enable-shared --with-pic
" exited with exitcode 1 and output:
aclocal: warning: autoconf input should be named 'configure.ac', n
== Results of the build can be found in the log file(s)
/tmp/eb-kHDJem/easybuild-Libint-1.1.6-20170929.173815.GjjIz.log
ERROR: Build of /tmp/eb-kHDJem/tweaked_dep_easyconfigs/Libint-1.1.6.eb failed (err: 'build failed (first 300
chars): cmd "aclocal -I lib/autoconf && libtoolize && autoconf && ./configure
--prefix=/home/user/tools/easybuild/software/Libint/1.1.6 --enable-deriv --enable-r12 --enable-shared --with-pic
" exited with exitcode 1 and output:\naclocal: warning: autoconf input should be named \'configure.ac\', n')
~~~
This looks like a warning not an error; if I go to the temporary build directory
and run that command, I see this warning but a proper `configure` script is
still generated. Is there a way to work around this issue?
Thanks,
Roc
On 9/29/2017 4:39 PM, [email protected] wrote:
Hi Kenneth,
That makes a lot of sense. It also led me to more RTFM. I wanted to utilize our
existing module system on the HPC system as much as possible (to save on compile
time and space), so I opted for your third suggestion. However, it looks like
the direct dependencies of CP2K all need to be compiled, which means I would
have to follow the chain and modify the dependencies of the direct dependencies
to use external modules? This doesn't seem a clean and sustainable approach. I
then tried using
`--filter-deps=Autotools,binutils,flex,GCCcore,GMP,icc,iccifort,ifort,imkl,impi,intel,libtool,M4,pkg-config,zlib`
to exclude all the things I can `module add`. The dry-run seems to indicate this
is what I want, with only one exception: intel/2016b. The compiler toolchain
isn't listed as dependency, so it wasn't filtered by `--filter-dep`, and while
building it complained that `intel/2016b` conflicted with the module I loaded:
~~~
== FAILED: Installation ended unsuccessfully (build directory:
/home/user/tools/easybuild/build/intel/2016b/dummy-dummy): build failed (first
300 chars): intel/2016b(2
3):ERROR:150: Module 'intel/2016b' conflicts with the currently loaded
module(s) 'intel/2016/update3'
== Results of the build can be found in the log file(s)
/tmp/eb-e83z38/easybuild-intel-2016b-20170929.162613.JEywY.log
ERROR: Build of
/home/user/tools/easybuild/software/EasyBuild/3.4.0/lib/python2.7/site-packages/easybuild_easyconfigs-3.4.0-py2.7.egg/easybuild/easyconfigs/i/intel/int
el-2016b.eb failed (err: "build failed (first 300 chars): intel/2016b(23):ERROR:150:
Module 'intel/2016b' conflicts with the currently loaded module(s)
'intel/2016/update3'")
~~~
Is there a way to use external compiler module to satisfy the compiler toolchain
as well?
Thanks,
Roc
On 9/29/2017 3:12 PM, Kenneth Hoste wrote:
Dear Roc,
I think your problem is that you have a binutils/2.26 already available on your
system, and 'eb' is assuming it was installed with EasyBuild...
All modules generated with EasyBuild define an environment variable like
$EBROOT<NAME>, where <NAME> is the software name in capitals.
EasyBuild relies on this later when the modules for dependencies are being
loaded, the 'get_software_root' function picks up $EBROOT*.
I think you have three options:
* don't have modules not built with EasyBuild "in view" when installing
software with EasyBuild, i.e. clean up $MODULEPATH first
* reinstalling the binutils/2.26 module with EasyBuild so it is happy, using "eb
binutils-2.26.eb --force"; whether this is an option depends on whether or not that
binutils module is in use already
* inform EasyBuild about this "external module" so it can pick it up and use
it, see http://easybuild.readthedocs.io/en/latest/Using_external_modules.html
regards,
Kenneth