summaryrefslogtreecommitdiff
path: root/sal
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
commit3f0cbdfd3b794fe82c374b728eda4a35226c9341 (patch)
treefdff4611a54c1c782a9637452a98dcd5424a95ed /sal
parent26a2ba4b4b28fff60cf847d9efcb7978f955cd54 (diff)
Don't fork() on iOS, use a new NO_CHILD_PROCESSES flag for that
Diffstat (limited to 'sal')
-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 432dc6441244..cb566aeb1d60 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 9ebe57a39ce6..d4b4d779a8e3 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;