• Andres Freund's avatar
    Fix 8a934d67 for libc++ and make more include order resistant. · 5758685c
    Andres Freund authored
    The previous definition was used in C++ mode, which causes problems
    when using clang with libc++ (rather than libstdc++), due to bugs
    therein.  So just avoid in C++ mode.
    
    A second problem is that depending on include order and implicit
    includes the previous definition did not guarantee that the current
    hack was effective by the time isinf was used, fix that by forcing
    math.h to be included.  This can cause clang using builds, or gcc
    using ones with JIT enabled, to slow down noticably.
    
    It's likely that we at some point want a better solution for the
    performance problem, but while it's there it should better work.
    
    Reported-By: Steven Winfield
    Bug: #15270
    Discussion: https://postgr.es/m/153116283147.1401.360416241833049560@wrigleys.postgresql.org
    Author: Andres Freund
    Backpatch: 11, like the previous commit.
    5758685c
port.h 13.6 KB