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).