D-Programming-Language/druntime — pull request #390 by kinke (2013-01-21 20:42:07+00:00)
Title: Reworked core.stdc.math and core.stdc.tgmath for MSVCRT support

Both DMD for Windows x64 and LDC for Windows (x86/x64) link with Microsoft's C run-time library, which sadly only supports a tiny subset of C99. So a lot of functions declared in core.stdc.math are not implemented, resulting in linking errors when used. This commit updates both core.stdc.math and core.stdc.tgmath modules to enable full MSVCRT support, primarily by only declaring supported functions.

Changes to core.stdc.math.d:
- Implementation of ```fpclassify, isfinite, isinf, isnan, isnormal, signbit``` macros for MSVCRT
- Removal of support for FreeBSD < 8.0-RELEASE
- Group functions into standard functions and C99 functions
- File structure:
- runtime-specific implementation of ```fpclassify, isfinite, isinf, isnan, isnormal, signbit``` macros
- declaration of standard functions
- MSVCRT: float versions, a few additional C99 functions (double & float), long double implementations
- !MSVCRT: float versions, additional C99 functions (double & float), long double versions (FreeBSD/generic)

Changes to core.stdc.tgmath.d:
- Removal of support for FreeBSD < 8.0-RELEASE
- Do not create aliases for unsupported C99 functions when linking to MSVCRT