summaryrefslogtreecommitdiff
path: root/gcc/ada/sysdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/sysdep.c')
-rw-r--r--gcc/ada/sysdep.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index ee31840d8d6..1eec8b96f88 100644
--- a/gcc/ada/sysdep.c
+++ b/gcc/ada/sysdep.c
@@ -44,6 +44,10 @@
#include "vxWorks.h"
#endif
+#ifdef __ANDROID__
+#undef linux
+#endif
+
#ifdef IN_RTS
#define POSIX
#include "tconfig.h"
@@ -923,3 +927,48 @@ __gnat_is_file_not_found_error (int errno_val) {
return 0;
}
}
+
+#ifdef __ANDROID__
+
+/* Provide extern symbols for sig* as needed by the tasking run-time, instead
+ of static inline functions. */
+
+#include <signal.h>
+
+int
+_sigismember (sigset_t *set, int signum)
+{
+ return sigismember (set, signum);
+}
+
+int
+_sigaddset (sigset_t *set, int signum)
+{
+ return sigaddset (set, signum);
+}
+
+int
+_sigdelset (sigset_t *set, int signum)
+{
+ return sigdelset (set, signum);
+}
+
+int
+_sigemptyset (sigset_t *set)
+{
+ return sigemptyset (set);
+}
+
+int
+_sigfillset (sigset_t *set)
+{
+ return sigfillset (set);
+}
+
+#include <unistd.h>
+int
+_getpagesize (void)
+{
+ return getpagesize ();
+}
+#endif