So I tried compiling HDF5 this morning by hand using all EB CFLAGS as well as the mentioned extra "-D_FloatXX" flags and it is definitely a configure (autoconf) issue and how it handles the spaces in e.g. "-D_Float64=*long double*" when parsing the CFLAGS variable.

At the moment I cannot find any solution as how to solve this. Using different quotes does not help and I can only find one old thread online where someone is having similar issues trying to pass a path name containing spaces, but he could not solve the problem either.

Maybe someone has and idea how to handle this problem?

Best
Sebastian

On 21.11.18 22:21, Sebastian Potthoff wrote:
Hi Kenneth,

thanks for the help. I also read about the triple quotes. Unfortunately I get the same error as before (from the config.log):

*configure:4560: mpiicc  -O2 -xHost -ftz -fp-speculation=safe -fp-model source -fPIC -D_Float32=float -D_Float64='long double'  -I...*
*icc: error #10236: File not found:  'double''*

I will try to compile HDF5 tomorrow by hand to make sure its really an EB issue and not just related to how configure works or the intel compiler.

Best
Sebastian

Am 21.11.2018 um 22:06 schrieb Kenneth Hoste <[email protected] <mailto:[email protected]>>:

Dear Sebastian,

How about this:

preconfigopts = """CFLAGS="$CFLAGS -D_Float32=float -D_Float64='long double'" """

In Python, you can use triple quotes (""") to define string values that have both single and double quotes (or newlines) in them.

Note that I'm also avoiding that you're hard overwriting the $CFLAGS defined by EasyBuild (I need to use double quotes CFLAGS="$CFLAGS ..." to ensure that bash will expand the $CFLAGS with the value defined by EasyBuild, single quotes would prevent expansion...).

I hope this helps...

regards,

Kenneth

On 21/11/2018 21:43, Sebastian Potthoff wrote:
Dear EasyBuilders,
I need help. I would like to compile HDF5 on the intel-2018b toolchain. My problem is that the hosts are running on Ubuntu 18.04.1 which means glibc 2.27. This again means some incompatibilities regarding the intel 2018 compilers, see these two threads:
https://software.intel.com/en-us/forums/intel-c-compiler/topic/742701
https://software.intel.com/en-us/forums/intel-c-compiler/topic/777003
A workaround for now seems to be to set the following CFLAGS beforehand:
*
*
*-DFloat32=float -D_Float64='long double' -D_Float32x=double -D_Float64x='long double'*
*
*
When I call mpiicc by hand using those flags (on some test file) everything seems fine (no complains here). So I downloaded the HDF5-1.10.2-intel-2018b.eb easyconfig file and modified it to include *preconfigopts* and *buildopts (*are these the correct ones btw? HDF5 is using configure*). *For the *opts lines I tried e.g. the following variants (I didn’t include all of them for example purposes). The errors I get when I try to build are in the line below (red):
*preconfigopts = 'CFLAGS="-D_Float32=float -D_Float64=long double“*
*>> config.log >> File not found:  'double'*
*
*
*preconfigopts = 'CFLAGS="-D_Float32=float -D_Float64=\'long double\'"'*
*>> config.log >> File not found:  'double''*
*
*
*preconfigopts = 'CFLAGS="-D_Float32=float -D_Float64="long double""'*
*>> EasyBuild.log >> double: command not found*
*
*
If I only pass one flag without spaces in the argument (e.g. *'CFLAGS="-D_Float32=float**“'*) it works fine until I run into the errors mentioned in the two links above.
*
*
I tried many more variants, but I gave up at some point. I am having some combination of Python string problem with spaces in CFLAGS variables as well as passing multiple compiler options at once and how to specify them correctly in the easyconfig file. If someone can help me out here, I would be very grateful.
Many thanks,
Sebastian


Reply via email to