  #include "trts_util.h"
  #include "se_memcpy.h"
  
+@@ -55,7 +56,7 @@
+ int EDMM_supported __attribute__((section(RELRO_SECTION_NAME))) = 0;
+ sdk_version_t g_sdk_version __attribute__((section(RELRO_SECTION_NAME))) = SDK_VERSION_1_5;
+ 
+-const volatile global_data_t g_global_data __attribute__((section(".niprod"))) = {1, 2, 3, 4,
++const volatile global_data_t g_global_data __attribute__((section(".niprod"))) = {1, 2, 3, 4, 5, 6, 7, 8,
+    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0}, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0, {{{0, 0, 0, 0, 0, 0, 0}}}};
+ uint32_t g_enclave_state __attribute__((section(".nipd"))) = ENCLAVE_INIT_NOT_STARTED;
+ 
 @@ -197,7 +198,7 @@
      else
  #endif

 
 
 #endif
--- /dev/null
+++ BUILD
@@ -0,0 +1,1171 @@

 typedef uint8_t		Elf_Byte;
 
 typedef uint32_t	Elf32_Addr;	/* Unsigned program address */
diff -Nur common/inc/internal/global_data.h common/inc/internal/global_data.h
--- common/inc/internal/global_data.h
+++ common/inc/internal/global_data.h
@@ -50,6 +50,10 @@
     sys_word_t     enclave_size;
     sys_word_t     heap_offset;
     sys_word_t     heap_size;
+    sys_word_t     data_offset;
+    sys_word_t     data_size;
+    sys_word_t     bss_offset;
+    sys_word_t     bss_size;
     sys_word_t     thread_policy;
     thread_data_t  td_template;
     uint8_t        tcs_template[TCS_TEMPLATE_SIZE];
diff -Nur common/inc/internal/metadata.h common/inc/internal/metadata.h
--- common/inc/internal/metadata.h
+++ common/inc/internal/metadata.h
