diff options
author | Jay Krell <jay.krell@cornell.edu> | 2018-09-26 12:45:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-26 12:45:59 +0300 |
commit | 4259352d3a7d4b8d6b9980c4e2da844957710609 (patch) | |
tree | 3009299263f946a5b16a4d258cae3adf10249adb /winconfig.h | |
parent | 352639f75a389150a1562ebf72a7d46f4acc475e (diff) |
[cxx] Rework C++ linkage to C99 trunc, isnan, isinf, etc. and some cleanup. (#10764)
This PR cleanups C++SDKs support and gets them all passing for the first time, esp. Android (WebAssembly already was, iOS uncertain before, green here).
* Current Visual C++ has signbit.
* Rework C++ linkage to C99 math-- trunc, isnan, isinf, etc.
Go through mono wrappers that are compiled as C.
Remove support for Visual C++ pre-2015 and non-C99 Solaris.
(Solaris has plenty of other problems compiling.)
Cleanup Windows ssize_t support.
* Remove trunc and aintl autoconfigury.
Use trunc unconditionally. (aintl is a Solaris near equivalent to trunc).
* Replace dis_isnan with mono_isnan.
* Interpreter already assumes presence of isinf and isfinite, so everywhere else might as well too.
A fair amount of cleanup therefore -- autoconf, ifdef, etc.
If this changes back, the mono_isinf, etc. wrappers are likely, but not necessarily, where to handle it for everyone, not sprinkling ifdefs and alternate implementations around -- assuming all users want the same fallback.
As well, we might want to import some good BSD libc versions of all these if there is any remaining question of portability. *Everyone* except old VAX and Cray have always used the same 32bit float and 64bit double representations since circa 1985 so these are all probably about one line of portable C89/C++98 each, maybe with endian sensitivity.
Diffstat (limited to 'winconfig.h')
-rw-r--r-- | winconfig.h | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/winconfig.h b/winconfig.h index 9e1ffc5ad8c..47491d77095 100644 --- a/winconfig.h +++ b/winconfig.h @@ -107,9 +107,6 @@ /* Enable DTrace probes */ /* #undef ENABLE_DTRACE */ -/* Has the 'aintl' function */ -/* #undef HAVE_AINTL */ - /* Supports C99 array initialization */ /* #undef HAVE_ARRAY_ELEM_INIT */ @@ -201,9 +198,6 @@ /* Define to 1 if you have the `fgetpwent' function. */ /* #undef HAVE_FGETPWENT */ -/* Define to 1 if you have the `finite' function. */ -/* #undef HAVE_FINITE */ - /* Define to 1 if you have the <fstab.h> header file. */ /* #undef HAVE_FSTAB_H */ @@ -258,9 +252,6 @@ /* Define to 1 if you have the <grp.h> header file. */ /* #undef HAVE_GRP_H */ -/* Define to 1 if you have the <ieeefp.h> header file. */ -/* #undef HAVE_IEEEFP_H */ - /* Define to 1 if you have the `inet_aton' function. */ /* #undef HAVE_INET_ATON */ @@ -282,12 +273,6 @@ /* Have IP_PKTINFO */ /* #undef HAVE_IP_PKTINFO */ -/* Define to 1 if you have the `isfinite' function. */ -/* #undef HAVE_ISFINITE */ - -/* isinf available */ -#define HAVE_ISINF 1 - /* Define to 1 if you have the `kqueue' function. */ /* #undef HAVE_KQUEUE */ @@ -414,7 +399,11 @@ #define HAVE_SIGNAL_H 1 /* Have signbit */ +#if _MSC_VER >= 1900 +#define HAVE_SIGNBIT 1 +#else /* #undef HAVE_SIGNBIT */ +#endif /* Can get interface list */ /* #undef HAVE_SIOCGIFCONF */ @@ -575,9 +564,6 @@ /* Have tm_gmtoff */ /* #undef HAVE_TM_GMTOFF */ -/* Define to 1 if you have the `trunc' function. */ -#define HAVE_TRUNC 1 - /* Define to 1 if you have the `ttyname_r' function. */ /* #undef HAVE_TTYNAME_R */ |