summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-12-16 09:27:57 -0800
committerKeith Packard <keithp@keithp.com>2013-12-16 09:27:57 -0800
commit4d62646142718024b0981eb4f1fd0131e829161f (patch)
treecf9f4dbb9f89844cbb19bb2e36e239e2e30eafc0
parentf4bfb14f53a939574da1f5995f0dad949898b86a (diff)
parent81ba89d6703a22178a153aa39478ba2d4bde262b (diff)
Merge remote-tracking branch 'jeremyhu/master'
-rw-r--r--configure.ac2
-rw-r--r--hw/xquartz/X11Controller.m8
-rw-r--r--os/osinit.c13
3 files changed, 16 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 3f2c2d063..51ac30ba6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2158,7 +2158,7 @@ if test "x$XQUARTZ" = xyes; then
AC_DEFINE(XQUARTZ,1,[Have Quartz])
AC_DEFINE(ROOTLESS,1,[Build Rootless code])
- XQUARTZ_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB"
+ XQUARTZ_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $PRESENT_LIB"
AC_SUBST([XQUARTZ_LIBS])
AC_CHECK_LIB([Xplugin],[xp_init],[:])
diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m
index 3d094bfc7..752bda35c 100644
--- a/hw/xquartz/X11Controller.m
+++ b/hw/xquartz/X11Controller.m
@@ -347,7 +347,7 @@ extern char *bundle_id_prefix;
const char *newargv[4];
char buf[128];
char *s;
-#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
int stdout_pipe[2];
int stderr_pipe[2];
#endif
@@ -363,7 +363,7 @@ extern char *bundle_id_prefix;
setenv("DISPLAY", buf, TRUE);
}
-#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
if (asl_log_descriptor) {
char *asl_sender;
aslmsg amsg = asl_new(ASL_TYPE_MSG);
@@ -413,7 +413,7 @@ extern char *bundle_id_prefix;
_exit(1);
case 0: /* child2 */
-#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
if (asl_log_descriptor) {
/* Replace our stdout/stderr */
dup2(stdout_pipe[1], STDOUT_FILENO);
@@ -442,7 +442,7 @@ extern char *bundle_id_prefix;
waitpid(child1, &status, 0);
}
-#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
if (asl_log_descriptor) {
/* Close the write ends of the pipe */
close(stdout_pipe[1]);
diff --git a/os/osinit.c b/os/osinit.c
index 60d10694b..4d48ea94e 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -213,10 +213,18 @@ OsInit(void)
dlinfo(RTLD_SELF, RTLD_DI_SETSIGNAL, &failure_signal);
#endif
-#if !defined(__CYGWIN__)
+#if !defined(XQUARTZ) /* STDIN is already /dev/null and STDOUT/STDERR is managed by console_redirect.c */
+# if defined(__APPLE__)
+ int devnullfd = open(devnull, O_RDWR, 0);
+ assert(devnullfd > 2);
+
+ dup2(devnullfd, STDIN_FILENO);
+ dup2(devnullfd, STDOUT_FILENO);
+ close(devnullfd);
+# elif !defined(__CYGWIN__)
fclose(stdin);
fclose(stdout);
-#endif
+# endif
/*
* If a write of zero bytes to stderr returns non-zero, i.e. -1,
* then writing to stderr failed, and we'll write somewhere else
@@ -250,6 +258,7 @@ OsInit(void)
setlinebuf(stderr);
#endif
}
+#endif /* !XQUARTZ */
#if !defined(WIN32) || defined(__CYGWIN__)
if (getpgrp() == 0)