Version: 3.9
Changes:
* Add __sgx to __config for Intel® Software Guard Extensions (Intel® SGX) specific configuration.
* Define _LIBCPP_HAS_NO_THREADS, _LIBCPP_HAS_NO_STDIN, _LIBCPP_HAS_NO_STDOUT, _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE.
* Use Intel® SGX C++ runtime library (cpprt from libcxxrt project ) instead.
* Disable unsupported data types and interfaces.
* Disable features that depend on I/O operations.
* Use Intel® SGX mutex, condition variable and spinlock instead of libc++ implementation.
* Use sgx_read_rand for generating random numbers.
* Disable randon until we determine whether it's used safely.
* Do not include Windows/Linux system headers directly.
* Fix MSVC and GCC warnings with unused parameters.
TODO:
* Merge Intel® SGX mutex and condition variable into libc++'s mutex and and condition variable.
* Merge atomic support for ICC.
* Update cpprt (libcxxrt project) or replace with libcxxabi (component of LLVM project).