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 /msvc/libmonoutils-common.targets | |
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 'msvc/libmonoutils-common.targets')
-rw-r--r-- | msvc/libmonoutils-common.targets | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/msvc/libmonoutils-common.targets b/msvc/libmonoutils-common.targets index cbfed3bdacf..2632d9a247d 100644 --- a/msvc/libmonoutils-common.targets +++ b/msvc/libmonoutils-common.targets @@ -45,6 +45,7 @@ <ClCompile Include="$(MonoSourceLocation)\mono\utils\monobitset.c" /> <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-filemap.c" /> <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-math.c" /> + <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-math-c.c" /> <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap.c" /> <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap-windows.c" /> <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap.h" /> |