aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sysdep.c
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 09:41:56 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 09:41:56 +0000
commitb261877aa2bd3f3bf8e31490144c0dd05ebb0369 (patch)
tree592dfa4c5da0b2f747924e5303aa856760fe858d /gcc/ada/sysdep.c
parent58621cf44792116fae27cff0689232b48f782cad (diff)
2012-11-06 Bernard Banner <banner@adacore.com>
* adaint.c Add file macro definitions missing on Android. * adaint.h Avoid definitions related to task affinity and CPU sets since this functionality is missing on the Android * errno.c (__set_errno): Android already contains such a named procedure so do include again. * gsocket.h: Sockets not supported on Android. * init.c: Avoid linux related code not supported on Android. * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset, sigfillset): wrapper functions since sig routines are defined as inline macros on Android. * terminals.c: Add stubs for terminal related functions not supported on Android. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193213 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sysdep.c')
-rw-r--r--gcc/ada/sysdep.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index ee31840d8d6..62a96ddea55 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,53 @@ __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. */
+
+#define sigismember android_sigismember
+#define sigaddset android_sigaddset
+#define sigdelset android_sigdelset
+#define sigemptyset android_sigemptyset
+#define sigfillset android_sigfillset
+
+#include <signal.h>
+
+#undef sigismember
+#undef sigaddset
+#undef sigdelset
+#undef sigemptyset
+#undef sigfillset
+
+int
+sigismember (sigset_t *set, int signum)
+{
+ return android_sigismember (set, signum);
+}
+
+int
+sigaddset (sigset_t *set, int signum)
+{
+ return android_sigaddset (set, signum);
+}
+
+int
+sigdelset (sigset_t *set, int signum)
+{
+ return android_sigdelset (set, signum);
+}
+
+int
+sigemptyset (sigset_t *set)
+{
+ return android_sigemptyset (set);
+}
+
+int
+sigfillset(sigset_t *set)
+{
+ return android_sigfillset (set);
+}
+#endif