Dear Bart
why not define it simply to double instead of "long double"?
this actually worked out! Thank you for the hint and explanation! It doesn't really solve the problem of spaces in CFLAGS arguments parsed by configure... but this is really good enough for my purpose.

@Åke, sorry your solution by including the escape character "\" did not work out unfortunately.

I wonder if the whole issue should be addressed in any way by EasyBuild? But I think this really falls more into an Autoconf/configure bug/issue and should be addressed there.


A note on compiling HDF5+intel2018b+glibc2.27. I ran into another issue and had to change a line in the math.h header file as per this thread (second last comment at the bottom):

https://software.intel.com/en-us/forums/intel-c-compiler/topic/760979

to get it completely working. So the combination of intel2018b and glibc2.27 is, to say it mildly, not the most ideal.

However maybe someone will benefit from this conversation.

Many thanks for all your help!
Sebastian


On 22.11.18 13:17, Bart Oldeman wrote:
Hi Sebastian,

why not define it simply to double instead of "long double"? On Linux, double is 64 bits, and long double is 80 bits (the old x87 FPU type).
Using "long double" will only decrease performance these days.

I think somebody made this mistake on the Intel forums (it's easy to make since for the Windows Intel compiler "long double" and "double" are the same type, as the MSVC libraries don't support the long double type in 64-bit mode.



On Thu, 22 Nov 2018 at 05:27, Sebastian Potthoff <[email protected] <mailto:[email protected]>> wrote:

    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




--
Dr. Bart E. Oldeman | [email protected] <mailto:[email protected]> | [email protected] <mailto:[email protected]>
Scientific Computing Analyst / Analyste en calcul scientifique
McGill HPC Centre / Centre de Calcul Haute Performance de McGill | http://www.hpc.mcgill.ca
Calcul Québec | http://www.calculquebec.ca
Compute/Calcul Canada | http://www.computecanada.ca
Tel/Tél: 514-396-8926 | Fax/Télécopieur: 514-396-8934


Reply via email to