From ad8111d7c971ce448905c733d65ba0cfc72bdca4 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Sequoia Date: Sat, 7 Dec 2013 01:14:37 -0800 Subject: darwin: Don't leave stdin/stdout closed Signed-off-by: Jeremy Huddleston Sequoia --- os/osinit.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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) -- cgit v1.2.3 From d7c9235ee261b0f780320985233e00dec5e2689c Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Sequoia Date: Sat, 7 Dec 2013 01:36:33 -0800 Subject: XQuartz: Use asl_log_descriptor to log stdout/stderr of child processes Signed-off-by: Jeremy Huddleston Sequoia --- hw/xquartz/X11Controller.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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]); -- cgit v1.2.3 From 81ba89d6703a22178a153aa39478ba2d4bde262b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Sequoia Date: Fri, 13 Dec 2013 01:39:44 -0800 Subject: configure.ac: Add PRESENT_LIB to XQUARTZ_LIBS Undefined symbols for architecture x86_64: "_present_extension_init", referenced from: _staticExtensions in libXquartz.a(miinitext.o) "_present_register_complete_notify", referenced from: ___glXregisterPresentCompleteNotify in libglx.a(glxcmds.o) Signed-off-by: Jeremy Huddleston Sequoia --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8bedd358c..ac29bd971 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],[:]) -- cgit v1.2.3