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