link time errors about builtin_isinf on bethe

Issue #1246 closed
Roland Haas created an issue

I get link time errors about missing builtin functions on bethe using the current ET thornlist and a option list with options to disable OMP collapse.

This happens with current trunk.

If I remember correctly I can circumvent the problem with careful choices for '-Disinf=std::isinf' etc. However this seems like a fudge and dangerous given the amount of work put into getting isnan to work in Cactus recently.

Is there a "correct" way to fix this?

I attach the make output, options list, thorn list and a list of all thorn revisions.

Keyword:

Comments (4)

  1. Erik Schnetter
    • removed comment

    To my knowledge, the "correct" way to correct this is to install the Intel compiler on a system that has the necessary prerequisites, i.e. a particular version of GCC, or a particular version of Red Hat, etc.

    I use work-arounds such as

    -D__builtin_isinf=::isinf
    

    This seems harmless since the compiler will see this definition, hence will still be able to generate optimised code. Also, autoconf will see this and thus let Cactus provide a working implementation.

    The implementation in Cactus puts its known-to-be-good functions into a separate namespace (either with a cctk_ prefix or into a namespace cctk) so that there should be no conflicts.

  2. Roland Haas reporter
    • changed status to open
    • assigned issue to
    • removed comment

    Thank you. I will use the workaround for now and check and see if the correct compiler can be installed on bethe (it was recently re-installed from scratch).

  3. Roland Haas reporter
    • changed status to resolved
    • removed comment

    Erik updated bethe.cfg with the workaround and required flag to disable OMP collapse.

  4. Log in to comment