 +    unsigned_enclave = sgx_unsigned_enclave,
 +    signed_enclave = sgx_signed_enclave,
 +)
+diff -Nur /dev/null debug_key_mrsigner.cc
+--- /dev/null
++++ debug_key_mrsigner.cc
+@@ -0,0 +1,18 @@
++#include "debug_key_mrsigner.h"
++
++namespace linux_sgx {
++
++// To generate this constant from enclave_test_private.pem, run the following
++// command:
++// openssl rsa -in enclave_test_private.pem -modulus -noout \
++// | sed -e 's/Modulus=//' | xxd -r -p - \
++// | perl -077e 'print scalar reverse <>' \
++// | sha256sum
++const char *const kDebugKeyMrsignerHex =
++    "83d719e77deaca1470f6baf62a4d774303c899db69020f9c70ee1dfc08c7ce9e";
++
++const char *const kDebugKeyMrsignerTextProto = R"pb(
++  hash: "\x83\xd7\x19\xe7\x7d\xea\xca\x14\x70\xf6\xba\xf6\x2a\x4d\x77\x43\x03\xc8\x99\xdb\x69\x02\x0f\x9c\x70\xee\x1d\xfc\x08\xc7\xce\x9e"
++)pb";
++
++}  // namespace linux_sgx
+diff -Nur /dev/null debug_key_mrsigner.h
+--- /dev/null
++++ debug_key_mrsigner.h
+@@ -0,0 +1,14 @@
++#ifndef _DEBUG_KEY_MRSIGNER_H_
++#define _DEBUG_KEY_MRSIGNER_H_
++
++namespace linux_sgx {
++
++// Hex-encoded constant representing the MRSIGNER value for enclaves signed
++// using the debug signing key.
++extern const char *const kDebugKeyMrsignerHex;
++
++extern const char *const kDebugKeyMrsignerTextProto;
++
++}  // namespace linux_sgx
++
++#endif  // _DEBUG_KEY_MRSIGNER_H_
 diff -Nur /dev/null enclave_sim.lds
 --- /dev/null
 +++ enclave_sim.lds

+    srcs = ["sdk/tlibc/gen/spinlock.c"],
+    hdrs = ["common/inc/sgx_spinlock.h"],
+    deps = [":common_inc"],
+)
+
+# Target selecting either simulation or hardware mode trusted include files

+#include "common/inc/sgx_urts.h"  // IWYU pragma: export
+
+#endif  // _INCLUDE_SGX_URTS_H_
diff -Nur /dev/null runtime_support/rts_config.h
--- /dev/null
+++ runtime_support/rts_config.h
@@ -0,0 +1,23 @@
+#ifndef _RUNTIME_SUPPORT_RTS_CONFIG_H_
+#define _RUNTIME_SUPPORT_RTS_CONFIG_H_
+
+#include <string.h>
+
+#ifndef _ERNNO_T_DEFINED
+#define _ERRNO_T_DEFINED
+typedef int errno_t;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+errno_t memset_s(void *s, size_t smax, int c, size_t n);
+
+int consttime_memequal(const void *b1, const void *b2, size_t len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // _RUNTIME_SUPPORT_RTS_CONFIG_H_
diff -Nur /dev/null runtime_support/sgx_init_crypto_lib.c
--- /dev/null
+++ runtime_support/sgx_init_crypto_lib.c
@@ -0,0 +1,10 @@
+
+#include <stdint.h>
+
+#include "sgx_error.h"
+
+sgx_status_t sgx_init_crypto_lib(uint64_t cpu_feature_indicator,
+                                 uint32_t *cpuid_table) {
+  return SGX_SUCCESS;
+}
+
diff -Nur /dev/null runtime_support/sgx_init_string_lib.c
--- /dev/null
+++ runtime_support/sgx_init_string_lib.c
@@ -0,0 +1,8 @@
+
+#include <stdint.h>
+
+int __NR_rt_sigprocmask;
+
+int sgx_init_string_lib(uint64_t cpu_feature_indicator) {
+  return 0;
+}
diff -Nur /dev/null external/rdrand/src/config.h
--- /dev/null
+++ external/rdrand/src/config.h
