summaryrefslogtreecommitdiffstats
path: root/libc/arch-arm64
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-04-22 21:40:38 -0700
committerElliott Hughes <enh@google.com>2015-04-23 08:41:45 -0700
commit3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208 (patch)
tree310c54610766a838a0569f8e44b33e7805b2d42c /libc/arch-arm64
parentff18108981aa1fa73696d6db1919cdc38788bd4e (diff)
downloadbionic-3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208.zip
bionic-3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208.tar.gz
bionic-3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208.tar.bz2
Simplify close(2) EINTR handling.
This doesn't affect code like Chrome that correctly ignores EINTR on close, makes code that tries TEMP_FAILURE_RETRY work (where before it might have closed a different fd and appeared to succeed, or had a bogus EBADF), and makes "goto fail" code work (instead of mistakenly assuming that EINTR means that the close failed). Who loses? Anyone actively trying to detect that they caught a signal while in close(2). I don't think those people exist, and I think they have better alternatives available. Bug: https://code.google.com/p/chromium/issues/detail?id=269623 Bug: http://b/20501816 Change-Id: I11e2f66532fe5d1b0082b2433212e24bdda8219b
Diffstat (limited to 'libc/arch-arm64')
-rw-r--r--libc/arch-arm64/syscalls/___close.S (renamed from libc/arch-arm64/syscalls/close.S)5
1 files changed, 3 insertions, 2 deletions
diff --git a/libc/arch-arm64/syscalls/close.S b/libc/arch-arm64/syscalls/___close.S
index 3624581..8fb8361 100644
--- a/libc/arch-arm64/syscalls/close.S
+++ b/libc/arch-arm64/syscalls/___close.S
@@ -2,7 +2,7 @@
#include <private/bionic_asm.h>
-ENTRY(close)
+ENTRY(___close)
mov x8, __NR_close
svc #0
@@ -11,4 +11,5 @@ ENTRY(close)
b.hi __set_errno_internal
ret
-END(close)
+END(___close)
+.hidden ___close