summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2011-05-24 23:57:16 +0300
committerTor Lillqvist <tml@iki.fi>2011-05-25 02:16:41 +0300
commitb6a9ee9e13f6306bab4c8a23e2331bb6cbc3807b (patch)
treeb3ff05709a2150e94853a9e645e4640055ebf9ec
parentfc84d60d32ba7369ed8df18c794d92ce8c12b617 (diff)
Don't fork() on iOS, use a new NO_CHILD_PROCESSES flag for that
-rw-r--r--sal/osl/unx/makefile.mk2
-rw-r--r--sal/osl/unx/process.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/sal/osl/unx/makefile.mk b/sal/osl/unx/makefile.mk
index 432dc6441..cb566aeb1 100644
--- a/sal/osl/unx/makefile.mk
+++ b/sal/osl/unx/makefile.mk
@@ -135,7 +135,7 @@ CFLAGS+=-DSAL_ENABLE_CRASH_REPORT
.ENDIF
.IF "$(OS)" == "IOS"
-CFLAGS+=-DNO_DL_FUNCTIONS
+CFLAGS+=-DNO_DL_FUNCTIONS -DNO_CHILD_PROCESSES
.ENDIF
.INCLUDE : target.mk
diff --git a/sal/osl/unx/process.c b/sal/osl/unx/process.c
index bc868edad..064b1a0fa 100644
--- a/sal/osl/unx/process.c
+++ b/sal/osl/unx/process.c
@@ -72,7 +72,7 @@
#define MAX_ARGS 255
#define MAX_ENVS 255
-#if defined(MACOSX) || defined(IORESOURCE_TRANSFER_BSD) || defined(AIX)
+#if defined(MACOSX) || defined(IOS) || defined(IORESOURCE_TRANSFER_BSD) || defined(AIX)
#define CONTROLLEN (sizeof(struct cmsghdr) + sizeof(int))
#endif
@@ -445,6 +445,9 @@ static void ChildStatusProc(void *pData)
in our child process */
memcpy(&data, pData, sizeof(data));
+#ifdef NO_CHILD_PROCESSES
+#define fork() (errno = EINVAL, -1)
+#endif
if (socketpair(AF_UNIX, SOCK_STREAM, 0, channel) == -1)
status = errno;