D needs to compile itself on non-x86 hosts where real type might be
something other than 80-bit extended precision. The simplest approach
is to use the existing D compiler real type as it must already have
correct real.nan and snan intializer.
Note this does not work for cross-compiling to alternate targets and is
only intended as transitional until that capability is added.
Upstream commit: a776514edc914e2e09bd4298fb07f2ac99e86f45
Notably, the glue layer side of the changed multiple interface
inheritance layout (DMD a54e89d) has not been implemented yet.
This corresponds to DMD commit 3f6a763c0589dd03c1c206eafd434b593702564e.
Also adds the CMake infrastructure to compile and link the D source files.
The build is partially broken:
- A few files in Phobos and druntime do not build
- MSVC build is broken because of unresolved symbols involving reals