Processed review comments
diff --git a/src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs b/src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs
index 3d590a5..2c9ba9f 100644
--- a/src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs
+++ b/src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs
@@ -29,7 +29,6 @@
     ];
 
     const EXPORT_SYMBOLS: &[&str] = &[
-        "elf_entry",
         "sgx_entry",
         "HEAP_BASE",
         "HEAP_SIZE",
diff --git a/src/libstd/sys/sgx/abi/entry.S b/src/libstd/sys/sgx/abi/entry.S
index a11eb18..ca2848c 100644
--- a/src/libstd/sys/sgx/abi/entry.S
+++ b/src/libstd/sys/sgx/abi/entry.S
@@ -109,19 +109,29 @@
 .section .text_no_sgx, "ax"
 .Lelf_entry_error_msg:
     .ascii "Error: This file is an SGX enclave which cannot be executed as a standard Linux binary.\nSee the installation guide at https://edp.fortanix.com/docs/installation/guide/ on how to use 'cargo run' or follow the steps at https://edp.fortanix.com/docs/tasks/deployment/ for manual deployment.\n"
+.Lelf_entry_error_msg_end:
+
 .global elf_entry
 .type elf_entry,function
 elf_entry:
 /* print error message */
-    movq $1, %rax                     /* write() syscall      */
-    movq $2, %rdi                     /* write to stderr      */
-    lea .Lelf_entry_error_msg(%rip), %rsi
-    movq $288, %rdx                   /* num chars to write   */
+    movq $1,%rax                     /* write() syscall        */
+    movq $2,%rdi                     /* write to stderr (fd 2) */
+    lea .Lelf_entry_error_msg(%rip),%rsi
+    movq $.Lelf_entry_error_msg_end-.Lelf_entry_error_msg,%rdx
+.Lelf_entry_call:
     syscall
-    
-    movq $60, %rax                    /* exit() syscall       */
-    movq $0, %rdi                     /* error code           */
+    test %rax,%rax
+    jle .Lelf_exit                    /* exit on error          */
+    add %rax,%rsi
+    sub %rax,%rdx                     /* all chars written?     */
+    jnz .Lelf_entry_call
+
+.Lelf_exit:    
+    movq $60,%rax                     /* exit() syscall         */
+    movq $1,%rdi                      /* exit code 1            */
     syscall
+    ud2                               /* should not be reached  */
 /*  end elf_entry */
 
 .text