aboutsummaryrefslogtreecommitdiff
path: root/source/Host/android/LibcGlue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Host/android/LibcGlue.cpp')
-rw-r--r--source/Host/android/LibcGlue.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/source/Host/android/LibcGlue.cpp b/source/Host/android/LibcGlue.cpp
new file mode 100644
index 000000000000..3842fb6c2a8e
--- /dev/null
+++ b/source/Host/android/LibcGlue.cpp
@@ -0,0 +1,40 @@
+//===-- LibcGlue.cpp --------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// This files adds functions missing from libc on earlier versions of Android
+
+#include <android/api-level.h>
+
+#include <sys/syscall.h>
+
+#if __ANDROID_API__ < 21
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "lldb/Host/Time.h"
+
+time_t timegm(struct tm* t)
+{
+ return (time_t) timegm64(t);
+}
+
+int signalfd (int fd, const sigset_t *mask, int flags)
+{
+ return syscall(__NR_signalfd4, fd, mask, _NSIG / 8, flags);
+}
+
+int posix_openpt(int flags)
+{
+ return open("/dev/ptmx", flags);
+}
+
+#endif