summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/openjdkjvm/OpenjdkJvm.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/runtime/openjdkjvm/OpenjdkJvm.cc b/runtime/openjdkjvm/OpenjdkJvm.cc
index aff9b61f3a..d010bab12f 100644
--- a/runtime/openjdkjvm/OpenjdkJvm.cc
+++ b/runtime/openjdkjvm/OpenjdkJvm.cc
@@ -116,7 +116,12 @@ JNIEXPORT jint JVM_Write(jint fd, char* buf, jint nbytes) {
/* posix lseek() */
JNIEXPORT jlong JVM_Lseek(jint fd, jlong offset, jint whence) {
- return TEMP_FAILURE_RETRY(lseek(fd, offset, whence));
+ // NOTE: Using TEMP_FAILURE_RETRY here is busted for LP32 on glibc - the return
+ // value will be coerced into an int32_t.
+ //
+ // lseek64 isn't specified to return EINTR so it shouldn't be necessary
+ // anyway.
+ return lseek64(fd, offset, whence);
}
/*