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