
It's easy enough to disable long double support in Boost.Math, it's just a case of working out what macros the std lib sets when it's not available so we can hook into that. Is __NO_LONG_DOUBLE_MATH defined after including math.h by any chance?
No, this macro is not defined.
I contacted with Comeau team and, as they are always helpful, I've received a quick fix for this issue. It is possible to compile using Comeau with gcc/g++ compatibility mode [1] enabled.
[1] http://www.comeaucomputing.com/4.3.0/minor/linux/compat.html
In this mode g++ built-in functions are available, so it is possible to define missing fabs for Linux-specific configuration in which toolset includes Comeau frontend + GNU C++ compiler + GLIBC:
#if defined(__linux__) && defined(__COMO__) \ && defined(__GNUG__) && defined(__GLIBC__) namespace std { inline long double fabs(long double value) { return __builtin_fabsl(value); } } #endif
I've confirmed using the simple test program that this option works.
Right, that could be a workaround for that one function, but isn't the whole lot of the long double functions missing? John.