[launchd-changes] [23754] trunk

source_changes at macosforge.org source_changes at macosforge.org
Sat Nov 22 14:31:21 PST 2008


Revision: 23754
          http://trac.macosforge.org/projects/launchd/changeset/23754
Author:   dsorresso at apple.com
Date:     2008-11-22 14:31:20 -0800 (Sat, 22 Nov 2008)
Log Message:
-----------
<rdar://problem/5707328> launchd restarts user agent on log out/restart/shutdown
<rdar://problem/6003804> 1/3rd fewer threads
<rdar://problem/6046664> TASK: flatten per-user bootstrap namespaces
<rdar://problem/6350674> Remove old bootstrap_set_policy() bits from launchd
<rdar://problem/6351795> SnowLeopard: launchd_libs doesn't installhrds correctly
<rdar://problem/6363222> calling exit() from a signal handler considered harmful
<rdar://problem/6365078> SnowLeopard10A212: Shutdown was in a loop waiting for processes to stop
<rdar://problem/6378416> Execution of rc.boot differs in Embedded and SnowLeopard
<rdar://problem/6384805> launchd: using socket types requires sys/socket.h
<rdar://problem/6387285> There's no _vproc_transaction_count_for_pid(), bootstrap_lookup_children(), etc.

Removed INTERNAL_ABI.
Overall fixes to internal shutdown path having to do with sampling. Shutdown should hang much less often now.
Other assorted fixes.

Modified Paths:
--------------
    trunk/launchd/src/bootstrap.h
    trunk/launchd/src/bootstrap_priv.h
    trunk/launchd/src/launch_priv.h
    trunk/launchd/src/launchctl.c
    trunk/launchd/src/launchd.c
    trunk/launchd/src/launchd.h
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/launchd_core_logic.h
    trunk/launchd/src/launchd_internal.defs
    trunk/launchd/src/launchd_ktrace.c
    trunk/launchd/src/launchd_ktrace.h
    trunk/launchd/src/launchd_mig_types.defs
    trunk/launchd/src/launchd_runtime.c
    trunk/launchd/src/launchd_runtime.h
    trunk/launchd/src/launchd_unix_ipc.c
    trunk/launchd/src/launchd_unix_ipc.h
    trunk/launchd/src/libbootstrap.c
    trunk/launchd/src/libvproc.c
    trunk/launchd/src/protocol_job_reply.defs
    trunk/launchd/src/protocol_vproc.defs
    trunk/launchd/src/vproc_priv.h
    trunk/launchd.xcodeproj/project.pbxproj

Removed Paths:
-------------
    trunk/launchd/src/Makefile.am
    trunk/launchd/src/Makefile.in

Deleted: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/Makefile.am	2008-11-22 22:31:20 UTC (rev 23754)
@@ -1,120 +0,0 @@
-CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror -Wstrict-overflow=4 # -Wstrict-aliasing=2 -Wshorten-64-to-32 # -Wpadded -Wconversion
-CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing
-CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
-AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN)
-AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT)
-
-CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h		\
-	     launchd_internal.h launchd_internalServer.h launchd_internalServer.c launchd_internalUser.c	\
-	     notifyServer.c notifyServer.h job_replyUser.c job_reply.h __version.c mach_excServer.c mach_excServer.h
-
-protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h: $(srcdir)/protocol_job.defs
-	mig $(MIGFLAGS) -sheader protocol_vprocServer.h $(srcdir)/protocol_job.defs
-
-if LIBS_ONLY
-
-noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
-
-liblaunch_a_CFLAGS = -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
-liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
-
-liblaunch_profile_a_CFLAGS = -pg -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
-liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
-
-$(srcdir)/libvproc.c:: protocol_vproc.h
-
-$(srcdir)/protocol_vprocUser.c:: protocol_vproc.h
-
-__version.c:
-	/Developer/Makefiles/bin/version.pl launchd_libs > $@
-
-
-install-data-hook:
-	mkdir -p $(DESTDIR)/usr/local/lib/system
-	cp liblaunch.a $(DESTDIR)/usr/local/lib/system
-	cp liblaunch.a $(DESTDIR)/usr/local/lib/system/liblaunch_debug.a
-	cp liblaunch_profile.a $(DESTDIR)/usr/local/lib/system/liblaunch_profile.a
-
-else
-
-bin_PROGRAMS = launchctl wait4path
-if DO_EMBEDDED_MAGIC
-sbin_PROGRAMS = launchd
-else
-sbin_PROGRAMS = launchd SystemStarter
-endif
-libexec_PROGRAMS = launchproxy
-
-sysconf_DATA = hostconfig rc.common rc.netboot
-
-launchctl_CFLAGS = $(AM_CFLAGS) -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
-launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library /usr/lib/libedit.dylib
-
-if DO_EMBEDDED_MAGIC
-else
-SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
-SystemStarter_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit -framework DiskArbitration
-SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
-endif
-
-launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
-launchd_LDFLAGS = $(AM_LDFLAGS) -lbsm
-launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c launchd_ktrace.c
-
-launchd_runtime.c:: notifyServer.h launchd_internal.h mach_excServer.h
-launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h job_forward.h
-
-launchproxy_LDFLAGS = $(AM_LDFLAGS) $(LIBS_SECURITY)
-
-job_forwardUser.c job_forward.h: $(srcdir)/protocol_job_forward.defs
-	mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_forward.defs
-
-notifyServer.c notifyServer.h: /usr/include/mach/notify.defs
-	mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h /usr/include/mach/notify.defs
-
-mach_excServer.c mach_excServer.h: /usr/include/mach/mach_exc.defs
-	mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h /usr/include/mach/mach_exc.defs
-
-job_replyUser.c job_reply.h: $(srcdir)/protocol_job_reply.defs
-	mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_reply.defs
-
-launchd_internal.h launchd_internalServer.c launchd_internalUser.c launchd_internalServer.h: $(srcdir)/launchd_internal.defs
-	mig $(MIGFLAGS) -sheader launchd_internalServer.h $(srcdir)/launchd_internal.defs
-
-
-man1_MANS = wait4path.1 launchctl.1
-
-man5_MANS = launchd.plist.5 launchd.conf.5
-
-if DO_EMBEDDED_MAGIC
-man8_MANS = launchd.8 launchproxy.8
-else
-man8_MANS = StartupItemContext.8 SystemStarter.8 rc.8 launchd.8 launchproxy.8
-endif
-
-install-data-hook:
-	mkdir -p $(DESTDIR)/usr/libexec
-	mkdir -p $(DESTDIR)/usr/include/servers
-	mkdir -p $(DESTDIR)/usr/local/include
-	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init.d
-	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
-	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_login_session.d
-	mkdir -p $(DESTDIR)/Library/LaunchDaemons
-	mkdir -p $(DESTDIR)/Library/LaunchAgents
-	mkdir -p $(DESTDIR)/System/Library/LaunchAgents
-	mkdir -p $(DESTDIR)/System/Library/LaunchDaemons
-	cp $(srcdir)/liblaunch_public.h $(DESTDIR)/usr/include/launch.h
-	cp $(srcdir)/libvproc_public.h $(DESTDIR)/usr/include/vproc.h
-	cp $(srcdir)/libbootstrap_public.h $(DESTDIR)/usr/include/servers/bootstrap.h
-	cp $(srcdir)/libbootstrap_public.h $(DESTDIR)/usr/include/servers/bootstrap_defs.h
-	cp $(srcdir)/libbootstrap_private.h $(DESTDIR)/usr/local/include/bootstrap_priv.h
-	cp $(srcdir)/liblaunch_private.h $(DESTDIR)/usr/local/include/launch_priv.h
-	cp $(srcdir)/libvproc_private.h $(DESTDIR)/usr/local/include/vproc_priv.h
-	cp $(srcdir)/reboot2.h $(DESTDIR)/usr/local/include/reboot2.h
-if DO_EMBEDDED_MAGIC
-else
-	cp $(srcdir)/StartupItemContext $(DESTDIR)/usr/libexec
-	cp $(srcdir)/com.apple.SystemStarter.plist $(DESTDIR)/System/Library/LaunchDaemons
-endif
-
-endif

Deleted: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/Makefile.in	2008-11-22 22:31:20 UTC (rev 23754)
@@ -1,1283 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
- at LIBS_ONLY_FALSE@bin_PROGRAMS = launchctl$(EXEEXT) wait4path$(EXEEXT)
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at sbin_PROGRAMS =  \
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	launchd$(EXEEXT) \
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	SystemStarter$(EXEEXT)
- at DO_EMBEDDED_MAGIC_TRUE@@LIBS_ONLY_FALSE at sbin_PROGRAMS =  \
- at DO_EMBEDDED_MAGIC_TRUE@@LIBS_ONLY_FALSE@	launchd$(EXEEXT)
- at LIBS_ONLY_FALSE@libexec_PROGRAMS = launchproxy$(EXEEXT)
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/config.h.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-liblaunch_a_AR = $(AR) $(ARFLAGS)
-liblaunch_a_LIBADD =
-am__liblaunch_a_SOURCES_DIST = liblaunch.c libvproc.c libbootstrap.c \
-	protocol_vprocUser.c launchd_ktrace.c __version.c
- at LIBS_ONLY_TRUE@am_liblaunch_a_OBJECTS =  \
- at LIBS_ONLY_TRUE@	liblaunch_a-liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_a-libvproc.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_a-libbootstrap.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_a-protocol_vprocUser.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_a-launchd_ktrace.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_a-__version.$(OBJEXT)
-liblaunch_a_OBJECTS = $(am_liblaunch_a_OBJECTS)
-liblaunch_profile_a_AR = $(AR) $(ARFLAGS)
-liblaunch_profile_a_LIBADD =
-am__liblaunch_profile_a_SOURCES_DIST = liblaunch.c libvproc.c \
-	libbootstrap.c protocol_vprocUser.c launchd_ktrace.c \
-	__version.c
- at LIBS_ONLY_TRUE@am_liblaunch_profile_a_OBJECTS =  \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-libvproc.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-libbootstrap.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-protocol_vprocUser.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-launchd_ktrace.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-__version.$(OBJEXT)
-liblaunch_profile_a_OBJECTS = $(am_liblaunch_profile_a_OBJECTS)
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
-	"$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" \
-	"$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \
-	"$(DESTDIR)$(sysconfdir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) $(sbin_PROGRAMS)
-am__SystemStarter_SOURCES_DIST = StartupItems.c IPC.c SystemStarter.c
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at am_SystemStarter_OBJECTS = SystemStarter-StartupItems.$(OBJEXT) \
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	SystemStarter-IPC.$(OBJEXT) \
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	SystemStarter-SystemStarter.$(OBJEXT)
-SystemStarter_OBJECTS = $(am_SystemStarter_OBJECTS)
-SystemStarter_LDADD = $(LDADD)
-SystemStarter_LINK = $(CCLD) $(SystemStarter_CFLAGS) $(CFLAGS) \
-	$(SystemStarter_LDFLAGS) $(LDFLAGS) -o $@
-launchctl_SOURCES = launchctl.c
-launchctl_OBJECTS = launchctl-launchctl.$(OBJEXT)
-launchctl_LDADD = $(LDADD)
-launchctl_LINK = $(CCLD) $(launchctl_CFLAGS) $(CFLAGS) \
-	$(launchctl_LDFLAGS) $(LDFLAGS) -o $@
-am__launchd_SOURCES_DIST = launchd.c launchd_core_logic.c \
-	launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c \
-	launchd_internalUser.c launchd_internalServer.c \
-	job_replyUser.c launchd_runtime.c launchd_runtime_kill.c \
-	job_forwardUser.c mach_excServer.c launchd_ktrace.c
- at LIBS_ONLY_FALSE@am_launchd_OBJECTS = launchd-launchd.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_core_logic.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_unix_ipc.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-protocol_vprocServer.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-notifyServer.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_internalUser.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_internalServer.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-job_replyUser.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_runtime.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_runtime_kill.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-job_forwardUser.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-mach_excServer.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-launchd_ktrace.$(OBJEXT)
-launchd_OBJECTS = $(am_launchd_OBJECTS)
-launchd_LDADD = $(LDADD)
-launchd_LINK = $(CCLD) $(launchd_CFLAGS) $(CFLAGS) $(launchd_LDFLAGS) \
-	$(LDFLAGS) -o $@
-launchproxy_SOURCES = launchproxy.c
-launchproxy_OBJECTS = launchproxy.$(OBJEXT)
-launchproxy_LDADD = $(LDADD)
-launchproxy_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(launchproxy_LDFLAGS) $(LDFLAGS) -o $@
-wait4path_SOURCES = wait4path.c
-wait4path_OBJECTS = wait4path.$(OBJEXT)
-wait4path_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. at am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(liblaunch_a_SOURCES) $(liblaunch_profile_a_SOURCES) \
-	$(SystemStarter_SOURCES) launchctl.c $(launchd_SOURCES) \
-	launchproxy.c wait4path.c
-DIST_SOURCES = $(am__liblaunch_a_SOURCES_DIST) \
-	$(am__liblaunch_profile_a_SOURCES_DIST) \
-	$(am__SystemStarter_SOURCES_DIST) launchctl.c \
-	$(am__launchd_SOURCES_DIST) launchproxy.c wait4path.c
-man1dir = $(mandir)/man1
-man5dir = $(mandir)/man5
-man8dir = $(mandir)/man8
-NROFF = nroff
-MANS = $(man1_MANS) $(man5_MANS) $(man8_MANS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(sysconf_DATA)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBS_SECURITY = @LIBS_SECURITY@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-WEAKLIBS_SECURITY = @WEAKLIBS_SECURITY@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror -Wstrict-overflow=4 # -Wstrict-aliasing=2 -Wshorten-64-to-32 # -Wpadded -Wconversion
-CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing
-CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
-AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN)
-AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT)
-CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h		\
-	     launchd_internal.h launchd_internalServer.h launchd_internalServer.c launchd_internalUser.c	\
-	     notifyServer.c notifyServer.h job_replyUser.c job_reply.h __version.c mach_excServer.c mach_excServer.h
-
- at LIBS_ONLY_TRUE@noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
- at LIBS_ONLY_TRUE@liblaunch_a_CFLAGS = -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
- at LIBS_ONLY_TRUE@liblaunch_profile_a_CFLAGS = -pg -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
- at LIBS_ONLY_FALSE@sysconf_DATA = hostconfig rc.common rc.netboot
- at LIBS_ONLY_FALSE@launchctl_CFLAGS = $(AM_CFLAGS) -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
- at LIBS_ONLY_FALSE@launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library /usr/lib/libedit.dylib
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at SystemStarter_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit -framework DiskArbitration
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
- at LIBS_ONLY_FALSE@launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
- at LIBS_ONLY_FALSE@launchd_LDFLAGS = $(AM_LDFLAGS) -lbsm
- at LIBS_ONLY_FALSE@launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c launchd_ktrace.c
- at LIBS_ONLY_FALSE@launchproxy_LDFLAGS = $(AM_LDFLAGS) $(LIBS_SECURITY)
- at LIBS_ONLY_FALSE@man1_MANS = wait4path.1 launchctl.1
- at LIBS_ONLY_FALSE@man5_MANS = launchd.plist.5 launchd.conf.5
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at man8_MANS = StartupItemContext.8 SystemStarter.8 rc.8 launchd.8 launchproxy.8
- at DO_EMBEDDED_MAGIC_TRUE@@LIBS_ONLY_FALSE at man8_MANS = launchd.8 launchproxy.8
-all: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-config.h: stamp-h1
-	@if test ! -f $@; then \
-	  rm -f stamp-h1; \
-	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-	else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status src/config.h
-$(srcdir)/config.h.in:  $(am__configure_deps) 
-	cd $(top_srcdir) && $(AUTOHEADER)
-	rm -f stamp-h1
-	touch $@
-
-distclean-hdr:
-	-rm -f config.h stamp-h1
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-liblaunch.a: $(liblaunch_a_OBJECTS) $(liblaunch_a_DEPENDENCIES) 
-	-rm -f liblaunch.a
-	$(liblaunch_a_AR) liblaunch.a $(liblaunch_a_OBJECTS) $(liblaunch_a_LIBADD)
-	$(RANLIB) liblaunch.a
-liblaunch_profile.a: $(liblaunch_profile_a_OBJECTS) $(liblaunch_profile_a_DEPENDENCIES) 
-	-rm -f liblaunch_profile.a
-	$(liblaunch_profile_a_AR) liblaunch_profile.a $(liblaunch_profile_a_OBJECTS) $(liblaunch_profile_a_LIBADD)
-	$(RANLIB) liblaunch_profile.a
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-install-libexecPROGRAMS: $(libexec_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
-	@list='$(libexec_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-libexecPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(libexec_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(libexecdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libexecdir)/$$f"; \
-	done
-
-clean-libexecPROGRAMS:
-	-test -z "$(libexec_PROGRAMS)" || rm -f $(libexec_PROGRAMS)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
-	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-sbinPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
-	done
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-SystemStarter$(EXEEXT): $(SystemStarter_OBJECTS) $(SystemStarter_DEPENDENCIES) 
-	@rm -f SystemStarter$(EXEEXT)
-	$(SystemStarter_LINK) $(SystemStarter_OBJECTS) $(SystemStarter_LDADD) $(LIBS)
-launchctl$(EXEEXT): $(launchctl_OBJECTS) $(launchctl_DEPENDENCIES) 
-	@rm -f launchctl$(EXEEXT)
-	$(launchctl_LINK) $(launchctl_OBJECTS) $(launchctl_LDADD) $(LIBS)
-launchd$(EXEEXT): $(launchd_OBJECTS) $(launchd_DEPENDENCIES) 
-	@rm -f launchd$(EXEEXT)
-	$(launchd_LINK) $(launchd_OBJECTS) $(launchd_LDADD) $(LIBS)
-launchproxy$(EXEEXT): $(launchproxy_OBJECTS) $(launchproxy_DEPENDENCIES) 
-	@rm -f launchproxy$(EXEEXT)
-	$(launchproxy_LINK) $(launchproxy_OBJECTS) $(launchproxy_LDADD) $(LIBS)
-wait4path$(EXEEXT): $(wait4path_OBJECTS) $(wait4path_DEPENDENCIES) 
-	@rm -f wait4path$(EXEEXT)
-	$(LINK) $(wait4path_OBJECTS) $(wait4path_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-IPC.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-StartupItems.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-SystemStarter.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchctl-launchctl.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-job_forwardUser.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-job_replyUser.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_core_logic.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_internalServer.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_internalUser.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_ktrace.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_runtime.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_runtime_kill.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_unix_ipc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-mach_excServer.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-notifyServer.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-protocol_vprocServer.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchproxy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-__version.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-launchd_ktrace.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-libbootstrap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-liblaunch.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-libvproc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-protocol_vprocUser.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-__version.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-libbootstrap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-liblaunch.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-libvproc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wait4path.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-liblaunch_a-liblaunch.o: liblaunch.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-liblaunch.o -MD -MP -MF $(DEPDIR)/liblaunch_a-liblaunch.Tpo -c -o liblaunch_a-liblaunch.o `test -f 'liblaunch.c' || echo '$(srcdir)/'`liblaunch.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-liblaunch.Tpo $(DEPDIR)/liblaunch_a-liblaunch.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='liblaunch.c' object='liblaunch_a-liblaunch.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-liblaunch.o `test -f 'liblaunch.c' || echo '$(srcdir)/'`liblaunch.c
-
-liblaunch_a-liblaunch.obj: liblaunch.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-liblaunch.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-liblaunch.Tpo -c -o liblaunch_a-liblaunch.obj `if test -f 'liblaunch.c'; then $(CYGPATH_W) 'liblaunch.c'; else $(CYGPATH_W) '$(srcdir)/liblaunch.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-liblaunch.Tpo $(DEPDIR)/liblaunch_a-liblaunch.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='liblaunch.c' object='liblaunch_a-liblaunch.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-liblaunch.obj `if test -f 'liblaunch.c'; then $(CYGPATH_W) 'liblaunch.c'; else $(CYGPATH_W) '$(srcdir)/liblaunch.c'; fi`
-
-liblaunch_a-libvproc.o: libvproc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-libvproc.o -MD -MP -MF $(DEPDIR)/liblaunch_a-libvproc.Tpo -c -o liblaunch_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-libvproc.Tpo $(DEPDIR)/liblaunch_a-libvproc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_a-libvproc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c
-
-liblaunch_a-libvproc.obj: libvproc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-libvproc.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-libvproc.Tpo -c -o liblaunch_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-libvproc.Tpo $(DEPDIR)/liblaunch_a-libvproc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_a-libvproc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
-
-liblaunch_a-libbootstrap.o: libbootstrap.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-libbootstrap.o -MD -MP -MF $(DEPDIR)/liblaunch_a-libbootstrap.Tpo -c -o liblaunch_a-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-libbootstrap.Tpo $(DEPDIR)/liblaunch_a-libbootstrap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libbootstrap.c' object='liblaunch_a-libbootstrap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c
-
-liblaunch_a-libbootstrap.obj: libbootstrap.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-libbootstrap.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-libbootstrap.Tpo -c -o liblaunch_a-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-libbootstrap.Tpo $(DEPDIR)/liblaunch_a-libbootstrap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libbootstrap.c' object='liblaunch_a-libbootstrap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`
-
-liblaunch_a-protocol_vprocUser.o: protocol_vprocUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-protocol_vprocUser.o -MD -MP -MF $(DEPDIR)/liblaunch_a-protocol_vprocUser.Tpo -c -o liblaunch_a-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-protocol_vprocUser.Tpo $(DEPDIR)/liblaunch_a-protocol_vprocUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocUser.c' object='liblaunch_a-protocol_vprocUser.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c
-
-liblaunch_a-protocol_vprocUser.obj: protocol_vprocUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-protocol_vprocUser.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-protocol_vprocUser.Tpo -c -o liblaunch_a-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-protocol_vprocUser.Tpo $(DEPDIR)/liblaunch_a-protocol_vprocUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocUser.c' object='liblaunch_a-protocol_vprocUser.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
-
-liblaunch_a-launchd_ktrace.o: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo -c -o liblaunch_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_a-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_a-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
-
-liblaunch_a-launchd_ktrace.obj: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo -c -o liblaunch_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_a-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_a-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
-
-liblaunch_a-__version.o: __version.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-__version.o -MD -MP -MF $(DEPDIR)/liblaunch_a-__version.Tpo -c -o liblaunch_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-__version.Tpo $(DEPDIR)/liblaunch_a-__version.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='__version.c' object='liblaunch_a-__version.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
-
-liblaunch_a-__version.obj: __version.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-__version.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-__version.Tpo -c -o liblaunch_a-__version.obj `if test -f '__version.c'; then $(CYGPATH_W) '__version.c'; else $(CYGPATH_W) '$(srcdir)/__version.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-__version.Tpo $(DEPDIR)/liblaunch_a-__version.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='__version.c' object='liblaunch_a-__version.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-__version.obj `if test -f '__version.c'; then $(CYGPATH_W) '__version.c'; else $(CYGPATH_W) '$(srcdir)/__version.c'; fi`
-
-liblaunch_profile_a-liblaunch.o: liblaunch.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-liblaunch.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-liblaunch.Tpo -c -o liblaunch_profile_a-liblaunch.o `test -f 'liblaunch.c' || echo '$(srcdir)/'`liblaunch.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-liblaunch.Tpo $(DEPDIR)/liblaunch_profile_a-liblaunch.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='liblaunch.c' object='liblaunch_profile_a-liblaunch.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-liblaunch.o `test -f 'liblaunch.c' || echo '$(srcdir)/'`liblaunch.c
-
-liblaunch_profile_a-liblaunch.obj: liblaunch.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-liblaunch.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-liblaunch.Tpo -c -o liblaunch_profile_a-liblaunch.obj `if test -f 'liblaunch.c'; then $(CYGPATH_W) 'liblaunch.c'; else $(CYGPATH_W) '$(srcdir)/liblaunch.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-liblaunch.Tpo $(DEPDIR)/liblaunch_profile_a-liblaunch.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='liblaunch.c' object='liblaunch_profile_a-liblaunch.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-liblaunch.obj `if test -f 'liblaunch.c'; then $(CYGPATH_W) 'liblaunch.c'; else $(CYGPATH_W) '$(srcdir)/liblaunch.c'; fi`
-
-liblaunch_profile_a-libvproc.o: libvproc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libvproc.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-libvproc.Tpo -c -o liblaunch_profile_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-libvproc.Tpo $(DEPDIR)/liblaunch_profile_a-libvproc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_profile_a-libvproc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c
-
-liblaunch_profile_a-libvproc.obj: libvproc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libvproc.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-libvproc.Tpo -c -o liblaunch_profile_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-libvproc.Tpo $(DEPDIR)/liblaunch_profile_a-libvproc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_profile_a-libvproc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
-
-liblaunch_profile_a-libbootstrap.o: libbootstrap.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libbootstrap.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo -c -o liblaunch_profile_a-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo $(DEPDIR)/liblaunch_profile_a-libbootstrap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libbootstrap.c' object='liblaunch_profile_a-libbootstrap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c
-
-liblaunch_profile_a-libbootstrap.obj: libbootstrap.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libbootstrap.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo -c -o liblaunch_profile_a-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo $(DEPDIR)/liblaunch_profile_a-libbootstrap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libbootstrap.c' object='liblaunch_profile_a-libbootstrap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`
-
-liblaunch_profile_a-protocol_vprocUser.o: protocol_vprocUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-protocol_vprocUser.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo -c -o liblaunch_profile_a-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocUser.c' object='liblaunch_profile_a-protocol_vprocUser.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c
-
-liblaunch_profile_a-protocol_vprocUser.obj: protocol_vprocUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-protocol_vprocUser.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo -c -o liblaunch_profile_a-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo $(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocUser.c' object='liblaunch_profile_a-protocol_vprocUser.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
-
-liblaunch_profile_a-launchd_ktrace.o: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo -c -o liblaunch_profile_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_profile_a-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
-
-liblaunch_profile_a-launchd_ktrace.obj: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo -c -o liblaunch_profile_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_profile_a-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
-
-liblaunch_profile_a-__version.o: __version.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-__version.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-__version.Tpo -c -o liblaunch_profile_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-__version.Tpo $(DEPDIR)/liblaunch_profile_a-__version.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='__version.c' object='liblaunch_profile_a-__version.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
-
-liblaunch_profile_a-__version.obj: __version.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-__version.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-__version.Tpo -c -o liblaunch_profile_a-__version.obj `if test -f '__version.c'; then $(CYGPATH_W) '__version.c'; else $(CYGPATH_W) '$(srcdir)/__version.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-__version.Tpo $(DEPDIR)/liblaunch_profile_a-__version.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='__version.c' object='liblaunch_profile_a-__version.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-__version.obj `if test -f '__version.c'; then $(CYGPATH_W) '__version.c'; else $(CYGPATH_W) '$(srcdir)/__version.c'; fi`
-
-SystemStarter-StartupItems.o: StartupItems.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-StartupItems.o -MD -MP -MF $(DEPDIR)/SystemStarter-StartupItems.Tpo -c -o SystemStarter-StartupItems.o `test -f 'StartupItems.c' || echo '$(srcdir)/'`StartupItems.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-StartupItems.Tpo $(DEPDIR)/SystemStarter-StartupItems.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='StartupItems.c' object='SystemStarter-StartupItems.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-StartupItems.o `test -f 'StartupItems.c' || echo '$(srcdir)/'`StartupItems.c
-
-SystemStarter-StartupItems.obj: StartupItems.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-StartupItems.obj -MD -MP -MF $(DEPDIR)/SystemStarter-StartupItems.Tpo -c -o SystemStarter-StartupItems.obj `if test -f 'StartupItems.c'; then $(CYGPATH_W) 'StartupItems.c'; else $(CYGPATH_W) '$(srcdir)/StartupItems.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-StartupItems.Tpo $(DEPDIR)/SystemStarter-StartupItems.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='StartupItems.c' object='SystemStarter-StartupItems.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-StartupItems.obj `if test -f 'StartupItems.c'; then $(CYGPATH_W) 'StartupItems.c'; else $(CYGPATH_W) '$(srcdir)/StartupItems.c'; fi`
-
-SystemStarter-IPC.o: IPC.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-IPC.o -MD -MP -MF $(DEPDIR)/SystemStarter-IPC.Tpo -c -o SystemStarter-IPC.o `test -f 'IPC.c' || echo '$(srcdir)/'`IPC.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-IPC.Tpo $(DEPDIR)/SystemStarter-IPC.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='IPC.c' object='SystemStarter-IPC.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-IPC.o `test -f 'IPC.c' || echo '$(srcdir)/'`IPC.c
-
-SystemStarter-IPC.obj: IPC.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-IPC.obj -MD -MP -MF $(DEPDIR)/SystemStarter-IPC.Tpo -c -o SystemStarter-IPC.obj `if test -f 'IPC.c'; then $(CYGPATH_W) 'IPC.c'; else $(CYGPATH_W) '$(srcdir)/IPC.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-IPC.Tpo $(DEPDIR)/SystemStarter-IPC.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='IPC.c' object='SystemStarter-IPC.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-IPC.obj `if test -f 'IPC.c'; then $(CYGPATH_W) 'IPC.c'; else $(CYGPATH_W) '$(srcdir)/IPC.c'; fi`
-
-SystemStarter-SystemStarter.o: SystemStarter.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-SystemStarter.o -MD -MP -MF $(DEPDIR)/SystemStarter-SystemStarter.Tpo -c -o SystemStarter-SystemStarter.o `test -f 'SystemStarter.c' || echo '$(srcdir)/'`SystemStarter.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-SystemStarter.Tpo $(DEPDIR)/SystemStarter-SystemStarter.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='SystemStarter.c' object='SystemStarter-SystemStarter.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-SystemStarter.o `test -f 'SystemStarter.c' || echo '$(srcdir)/'`SystemStarter.c
-
-SystemStarter-SystemStarter.obj: SystemStarter.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-SystemStarter.obj -MD -MP -MF $(DEPDIR)/SystemStarter-SystemStarter.Tpo -c -o SystemStarter-SystemStarter.obj `if test -f 'SystemStarter.c'; then $(CYGPATH_W) 'SystemStarter.c'; else $(CYGPATH_W) '$(srcdir)/SystemStarter.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/SystemStarter-SystemStarter.Tpo $(DEPDIR)/SystemStarter-SystemStarter.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='SystemStarter.c' object='SystemStarter-SystemStarter.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -c -o SystemStarter-SystemStarter.obj `if test -f 'SystemStarter.c'; then $(CYGPATH_W) 'SystemStarter.c'; else $(CYGPATH_W) '$(srcdir)/SystemStarter.c'; fi`
-
-launchctl-launchctl.o: launchctl.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchctl_CFLAGS) $(CFLAGS) -MT launchctl-launchctl.o -MD -MP -MF $(DEPDIR)/launchctl-launchctl.Tpo -c -o launchctl-launchctl.o `test -f 'launchctl.c' || echo '$(srcdir)/'`launchctl.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchctl-launchctl.Tpo $(DEPDIR)/launchctl-launchctl.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchctl.c' object='launchctl-launchctl.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchctl_CFLAGS) $(CFLAGS) -c -o launchctl-launchctl.o `test -f 'launchctl.c' || echo '$(srcdir)/'`launchctl.c
-
-launchctl-launchctl.obj: launchctl.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchctl_CFLAGS) $(CFLAGS) -MT launchctl-launchctl.obj -MD -MP -MF $(DEPDIR)/launchctl-launchctl.Tpo -c -o launchctl-launchctl.obj `if test -f 'launchctl.c'; then $(CYGPATH_W) 'launchctl.c'; else $(CYGPATH_W) '$(srcdir)/launchctl.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchctl-launchctl.Tpo $(DEPDIR)/launchctl-launchctl.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchctl.c' object='launchctl-launchctl.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchctl_CFLAGS) $(CFLAGS) -c -o launchctl-launchctl.obj `if test -f 'launchctl.c'; then $(CYGPATH_W) 'launchctl.c'; else $(CYGPATH_W) '$(srcdir)/launchctl.c'; fi`
-
-launchd-launchd.o: launchd.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd.o -MD -MP -MF $(DEPDIR)/launchd-launchd.Tpo -c -o launchd-launchd.o `test -f 'launchd.c' || echo '$(srcdir)/'`launchd.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd.Tpo $(DEPDIR)/launchd-launchd.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd.c' object='launchd-launchd.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd.o `test -f 'launchd.c' || echo '$(srcdir)/'`launchd.c
-
-launchd-launchd.obj: launchd.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd.obj -MD -MP -MF $(DEPDIR)/launchd-launchd.Tpo -c -o launchd-launchd.obj `if test -f 'launchd.c'; then $(CYGPATH_W) 'launchd.c'; else $(CYGPATH_W) '$(srcdir)/launchd.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd.Tpo $(DEPDIR)/launchd-launchd.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd.c' object='launchd-launchd.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd.obj `if test -f 'launchd.c'; then $(CYGPATH_W) 'launchd.c'; else $(CYGPATH_W) '$(srcdir)/launchd.c'; fi`
-
-launchd-launchd_core_logic.o: launchd_core_logic.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_core_logic.o -MD -MP -MF $(DEPDIR)/launchd-launchd_core_logic.Tpo -c -o launchd-launchd_core_logic.o `test -f 'launchd_core_logic.c' || echo '$(srcdir)/'`launchd_core_logic.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_core_logic.Tpo $(DEPDIR)/launchd-launchd_core_logic.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_core_logic.c' object='launchd-launchd_core_logic.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_core_logic.o `test -f 'launchd_core_logic.c' || echo '$(srcdir)/'`launchd_core_logic.c
-
-launchd-launchd_core_logic.obj: launchd_core_logic.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_core_logic.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_core_logic.Tpo -c -o launchd-launchd_core_logic.obj `if test -f 'launchd_core_logic.c'; then $(CYGPATH_W) 'launchd_core_logic.c'; else $(CYGPATH_W) '$(srcdir)/launchd_core_logic.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_core_logic.Tpo $(DEPDIR)/launchd-launchd_core_logic.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_core_logic.c' object='launchd-launchd_core_logic.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_core_logic.obj `if test -f 'launchd_core_logic.c'; then $(CYGPATH_W) 'launchd_core_logic.c'; else $(CYGPATH_W) '$(srcdir)/launchd_core_logic.c'; fi`
-
-launchd-launchd_unix_ipc.o: launchd_unix_ipc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_unix_ipc.o -MD -MP -MF $(DEPDIR)/launchd-launchd_unix_ipc.Tpo -c -o launchd-launchd_unix_ipc.o `test -f 'launchd_unix_ipc.c' || echo '$(srcdir)/'`launchd_unix_ipc.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_unix_ipc.Tpo $(DEPDIR)/launchd-launchd_unix_ipc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_unix_ipc.c' object='launchd-launchd_unix_ipc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_unix_ipc.o `test -f 'launchd_unix_ipc.c' || echo '$(srcdir)/'`launchd_unix_ipc.c
-
-launchd-launchd_unix_ipc.obj: launchd_unix_ipc.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_unix_ipc.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_unix_ipc.Tpo -c -o launchd-launchd_unix_ipc.obj `if test -f 'launchd_unix_ipc.c'; then $(CYGPATH_W) 'launchd_unix_ipc.c'; else $(CYGPATH_W) '$(srcdir)/launchd_unix_ipc.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_unix_ipc.Tpo $(DEPDIR)/launchd-launchd_unix_ipc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_unix_ipc.c' object='launchd-launchd_unix_ipc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_unix_ipc.obj `if test -f 'launchd_unix_ipc.c'; then $(CYGPATH_W) 'launchd_unix_ipc.c'; else $(CYGPATH_W) '$(srcdir)/launchd_unix_ipc.c'; fi`
-
-launchd-protocol_vprocServer.o: protocol_vprocServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-protocol_vprocServer.o -MD -MP -MF $(DEPDIR)/launchd-protocol_vprocServer.Tpo -c -o launchd-protocol_vprocServer.o `test -f 'protocol_vprocServer.c' || echo '$(srcdir)/'`protocol_vprocServer.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-protocol_vprocServer.Tpo $(DEPDIR)/launchd-protocol_vprocServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocServer.c' object='launchd-protocol_vprocServer.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-protocol_vprocServer.o `test -f 'protocol_vprocServer.c' || echo '$(srcdir)/'`protocol_vprocServer.c
-
-launchd-protocol_vprocServer.obj: protocol_vprocServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-protocol_vprocServer.obj -MD -MP -MF $(DEPDIR)/launchd-protocol_vprocServer.Tpo -c -o launchd-protocol_vprocServer.obj `if test -f 'protocol_vprocServer.c'; then $(CYGPATH_W) 'protocol_vprocServer.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocServer.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-protocol_vprocServer.Tpo $(DEPDIR)/launchd-protocol_vprocServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocServer.c' object='launchd-protocol_vprocServer.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-protocol_vprocServer.obj `if test -f 'protocol_vprocServer.c'; then $(CYGPATH_W) 'protocol_vprocServer.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocServer.c'; fi`
-
-launchd-notifyServer.o: notifyServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-notifyServer.o -MD -MP -MF $(DEPDIR)/launchd-notifyServer.Tpo -c -o launchd-notifyServer.o `test -f 'notifyServer.c' || echo '$(srcdir)/'`notifyServer.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-notifyServer.Tpo $(DEPDIR)/launchd-notifyServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='notifyServer.c' object='launchd-notifyServer.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-notifyServer.o `test -f 'notifyServer.c' || echo '$(srcdir)/'`notifyServer.c
-
-launchd-notifyServer.obj: notifyServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-notifyServer.obj -MD -MP -MF $(DEPDIR)/launchd-notifyServer.Tpo -c -o launchd-notifyServer.obj `if test -f 'notifyServer.c'; then $(CYGPATH_W) 'notifyServer.c'; else $(CYGPATH_W) '$(srcdir)/notifyServer.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-notifyServer.Tpo $(DEPDIR)/launchd-notifyServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='notifyServer.c' object='launchd-notifyServer.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-notifyServer.obj `if test -f 'notifyServer.c'; then $(CYGPATH_W) 'notifyServer.c'; else $(CYGPATH_W) '$(srcdir)/notifyServer.c'; fi`
-
-launchd-launchd_internalUser.o: launchd_internalUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_internalUser.o -MD -MP -MF $(DEPDIR)/launchd-launchd_internalUser.Tpo -c -o launchd-launchd_internalUser.o `test -f 'launchd_internalUser.c' || echo '$(srcdir)/'`launchd_internalUser.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_internalUser.Tpo $(DEPDIR)/launchd-launchd_internalUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_internalUser.c' object='launchd-launchd_internalUser.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_internalUser.o `test -f 'launchd_internalUser.c' || echo '$(srcdir)/'`launchd_internalUser.c
-
-launchd-launchd_internalUser.obj: launchd_internalUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_internalUser.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_internalUser.Tpo -c -o launchd-launchd_internalUser.obj `if test -f 'launchd_internalUser.c'; then $(CYGPATH_W) 'launchd_internalUser.c'; else $(CYGPATH_W) '$(srcdir)/launchd_internalUser.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_internalUser.Tpo $(DEPDIR)/launchd-launchd_internalUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_internalUser.c' object='launchd-launchd_internalUser.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_internalUser.obj `if test -f 'launchd_internalUser.c'; then $(CYGPATH_W) 'launchd_internalUser.c'; else $(CYGPATH_W) '$(srcdir)/launchd_internalUser.c'; fi`
-
-launchd-launchd_internalServer.o: launchd_internalServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_internalServer.o -MD -MP -MF $(DEPDIR)/launchd-launchd_internalServer.Tpo -c -o launchd-launchd_internalServer.o `test -f 'launchd_internalServer.c' || echo '$(srcdir)/'`launchd_internalServer.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_internalServer.Tpo $(DEPDIR)/launchd-launchd_internalServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_internalServer.c' object='launchd-launchd_internalServer.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_internalServer.o `test -f 'launchd_internalServer.c' || echo '$(srcdir)/'`launchd_internalServer.c
-
-launchd-launchd_internalServer.obj: launchd_internalServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_internalServer.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_internalServer.Tpo -c -o launchd-launchd_internalServer.obj `if test -f 'launchd_internalServer.c'; then $(CYGPATH_W) 'launchd_internalServer.c'; else $(CYGPATH_W) '$(srcdir)/launchd_internalServer.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_internalServer.Tpo $(DEPDIR)/launchd-launchd_internalServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_internalServer.c' object='launchd-launchd_internalServer.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_internalServer.obj `if test -f 'launchd_internalServer.c'; then $(CYGPATH_W) 'launchd_internalServer.c'; else $(CYGPATH_W) '$(srcdir)/launchd_internalServer.c'; fi`
-
-launchd-job_replyUser.o: job_replyUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-job_replyUser.o -MD -MP -MF $(DEPDIR)/launchd-job_replyUser.Tpo -c -o launchd-job_replyUser.o `test -f 'job_replyUser.c' || echo '$(srcdir)/'`job_replyUser.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-job_replyUser.Tpo $(DEPDIR)/launchd-job_replyUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='job_replyUser.c' object='launchd-job_replyUser.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-job_replyUser.o `test -f 'job_replyUser.c' || echo '$(srcdir)/'`job_replyUser.c
-
-launchd-job_replyUser.obj: job_replyUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-job_replyUser.obj -MD -MP -MF $(DEPDIR)/launchd-job_replyUser.Tpo -c -o launchd-job_replyUser.obj `if test -f 'job_replyUser.c'; then $(CYGPATH_W) 'job_replyUser.c'; else $(CYGPATH_W) '$(srcdir)/job_replyUser.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-job_replyUser.Tpo $(DEPDIR)/launchd-job_replyUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='job_replyUser.c' object='launchd-job_replyUser.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-job_replyUser.obj `if test -f 'job_replyUser.c'; then $(CYGPATH_W) 'job_replyUser.c'; else $(CYGPATH_W) '$(srcdir)/job_replyUser.c'; fi`
-
-launchd-launchd_runtime.o: launchd_runtime.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_runtime.o -MD -MP -MF $(DEPDIR)/launchd-launchd_runtime.Tpo -c -o launchd-launchd_runtime.o `test -f 'launchd_runtime.c' || echo '$(srcdir)/'`launchd_runtime.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_runtime.Tpo $(DEPDIR)/launchd-launchd_runtime.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_runtime.c' object='launchd-launchd_runtime.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_runtime.o `test -f 'launchd_runtime.c' || echo '$(srcdir)/'`launchd_runtime.c
-
-launchd-launchd_runtime.obj: launchd_runtime.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_runtime.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_runtime.Tpo -c -o launchd-launchd_runtime.obj `if test -f 'launchd_runtime.c'; then $(CYGPATH_W) 'launchd_runtime.c'; else $(CYGPATH_W) '$(srcdir)/launchd_runtime.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_runtime.Tpo $(DEPDIR)/launchd-launchd_runtime.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_runtime.c' object='launchd-launchd_runtime.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_runtime.obj `if test -f 'launchd_runtime.c'; then $(CYGPATH_W) 'launchd_runtime.c'; else $(CYGPATH_W) '$(srcdir)/launchd_runtime.c'; fi`
-
-launchd-launchd_runtime_kill.o: launchd_runtime_kill.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_runtime_kill.o -MD -MP -MF $(DEPDIR)/launchd-launchd_runtime_kill.Tpo -c -o launchd-launchd_runtime_kill.o `test -f 'launchd_runtime_kill.c' || echo '$(srcdir)/'`launchd_runtime_kill.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_runtime_kill.Tpo $(DEPDIR)/launchd-launchd_runtime_kill.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_runtime_kill.c' object='launchd-launchd_runtime_kill.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_runtime_kill.o `test -f 'launchd_runtime_kill.c' || echo '$(srcdir)/'`launchd_runtime_kill.c
-
-launchd-launchd_runtime_kill.obj: launchd_runtime_kill.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_runtime_kill.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_runtime_kill.Tpo -c -o launchd-launchd_runtime_kill.obj `if test -f 'launchd_runtime_kill.c'; then $(CYGPATH_W) 'launchd_runtime_kill.c'; else $(CYGPATH_W) '$(srcdir)/launchd_runtime_kill.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_runtime_kill.Tpo $(DEPDIR)/launchd-launchd_runtime_kill.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_runtime_kill.c' object='launchd-launchd_runtime_kill.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_runtime_kill.obj `if test -f 'launchd_runtime_kill.c'; then $(CYGPATH_W) 'launchd_runtime_kill.c'; else $(CYGPATH_W) '$(srcdir)/launchd_runtime_kill.c'; fi`
-
-launchd-job_forwardUser.o: job_forwardUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-job_forwardUser.o -MD -MP -MF $(DEPDIR)/launchd-job_forwardUser.Tpo -c -o launchd-job_forwardUser.o `test -f 'job_forwardUser.c' || echo '$(srcdir)/'`job_forwardUser.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-job_forwardUser.Tpo $(DEPDIR)/launchd-job_forwardUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='job_forwardUser.c' object='launchd-job_forwardUser.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-job_forwardUser.o `test -f 'job_forwardUser.c' || echo '$(srcdir)/'`job_forwardUser.c
-
-launchd-job_forwardUser.obj: job_forwardUser.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-job_forwardUser.obj -MD -MP -MF $(DEPDIR)/launchd-job_forwardUser.Tpo -c -o launchd-job_forwardUser.obj `if test -f 'job_forwardUser.c'; then $(CYGPATH_W) 'job_forwardUser.c'; else $(CYGPATH_W) '$(srcdir)/job_forwardUser.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-job_forwardUser.Tpo $(DEPDIR)/launchd-job_forwardUser.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='job_forwardUser.c' object='launchd-job_forwardUser.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-job_forwardUser.obj `if test -f 'job_forwardUser.c'; then $(CYGPATH_W) 'job_forwardUser.c'; else $(CYGPATH_W) '$(srcdir)/job_forwardUser.c'; fi`
-
-launchd-mach_excServer.o: mach_excServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-mach_excServer.o -MD -MP -MF $(DEPDIR)/launchd-mach_excServer.Tpo -c -o launchd-mach_excServer.o `test -f 'mach_excServer.c' || echo '$(srcdir)/'`mach_excServer.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-mach_excServer.Tpo $(DEPDIR)/launchd-mach_excServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mach_excServer.c' object='launchd-mach_excServer.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-mach_excServer.o `test -f 'mach_excServer.c' || echo '$(srcdir)/'`mach_excServer.c
-
-launchd-mach_excServer.obj: mach_excServer.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-mach_excServer.obj -MD -MP -MF $(DEPDIR)/launchd-mach_excServer.Tpo -c -o launchd-mach_excServer.obj `if test -f 'mach_excServer.c'; then $(CYGPATH_W) 'mach_excServer.c'; else $(CYGPATH_W) '$(srcdir)/mach_excServer.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-mach_excServer.Tpo $(DEPDIR)/launchd-mach_excServer.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mach_excServer.c' object='launchd-mach_excServer.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-mach_excServer.obj `if test -f 'mach_excServer.c'; then $(CYGPATH_W) 'mach_excServer.c'; else $(CYGPATH_W) '$(srcdir)/mach_excServer.c'; fi`
-
-launchd-launchd_ktrace.o: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/launchd-launchd_ktrace.Tpo -c -o launchd-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_ktrace.Tpo $(DEPDIR)/launchd-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='launchd-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
-
-launchd-launchd_ktrace.obj: launchd_ktrace.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_ktrace.Tpo -c -o launchd-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_ktrace.Tpo $(DEPDIR)/launchd-launchd_ktrace.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='launchd-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
-install-man1: $(man1_MANS) $(man_MANS)
-	@$(NORMAL_INSTALL)
-	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
-uninstall-man1:
-	@$(NORMAL_UNINSTALL)
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
-install-man5: $(man5_MANS) $(man_MANS)
-	@$(NORMAL_INSTALL)
-	test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
-	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.5*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    5*) ;; \
-	    *) ext='5' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
-	done
-uninstall-man5:
-	@$(NORMAL_UNINSTALL)
-	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.5*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    5*) ;; \
-	    *) ext='5' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
-	done
-install-man8: $(man8_MANS) $(man_MANS)
-	@$(NORMAL_INSTALL)
-	test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
-	@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.8*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    8*) ;; \
-	    *) ext='8' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
-	done
-uninstall-man8:
-	@$(NORMAL_UNINSTALL)
-	@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.8*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    8*) ;; \
-	    *) ext='8' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
-	done
-install-sysconfDATA: $(sysconf_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
-	@list='$(sysconf_DATA)'; for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
-	  $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
-	done
-
-uninstall-sysconfDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(sysconf_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(MANS) $(DATA) config.h
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libexecPROGRAMS \
-	clean-noinstLIBRARIES clean-sbinPROGRAMS mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-hdr distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
-
-install-dvi: install-dvi-am
-
-install-exec-am: install-binPROGRAMS install-libexecPROGRAMS \
-	install-sbinPROGRAMS install-sysconfDATA
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man: install-man1 install-man5 install-man8
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-libexecPROGRAMS \
-	uninstall-man uninstall-sbinPROGRAMS uninstall-sysconfDATA
-
-uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
-
-.MAKE: install-am install-data-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libexecPROGRAMS clean-noinstLIBRARIES \
-	clean-sbinPROGRAMS ctags distclean distclean-compile \
-	distclean-generic distclean-hdr distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-binPROGRAMS install-data install-data-am \
-	install-data-hook install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-libexecPROGRAMS install-man \
-	install-man1 install-man5 install-man8 install-pdf \
-	install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
-	install-strip install-sysconfDATA installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
-	uninstall-libexecPROGRAMS uninstall-man uninstall-man1 \
-	uninstall-man5 uninstall-man8 uninstall-sbinPROGRAMS \
-	uninstall-sysconfDATA
-
-
-protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h: $(srcdir)/protocol_job.defs
-	mig $(MIGFLAGS) -sheader protocol_vprocServer.h $(srcdir)/protocol_job.defs
-
- at LIBS_ONLY_TRUE@$(srcdir)/libvproc.c:: protocol_vproc.h
-
- at LIBS_ONLY_TRUE@$(srcdir)/protocol_vprocUser.c:: protocol_vproc.h
-
- at LIBS_ONLY_TRUE@__version.c:
- at LIBS_ONLY_TRUE@	/Developer/Makefiles/bin/version.pl launchd_libs > $@
-
- at LIBS_ONLY_TRUE@install-data-hook:
- at LIBS_ONLY_TRUE@	mkdir -p $(DESTDIR)/usr/local/lib/system
- at LIBS_ONLY_TRUE@	cp liblaunch.a $(DESTDIR)/usr/local/lib/system
- at LIBS_ONLY_TRUE@	cp liblaunch.a $(DESTDIR)/usr/local/lib/system/liblaunch_debug.a
- at LIBS_ONLY_TRUE@	cp liblaunch_profile.a $(DESTDIR)/usr/local/lib/system/liblaunch_profile.a
-
- at LIBS_ONLY_FALSE@launchd_runtime.c:: notifyServer.h launchd_internal.h mach_excServer.h
- at LIBS_ONLY_FALSE@launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h job_forward.h
-
- at LIBS_ONLY_FALSE@job_forwardUser.c job_forward.h: $(srcdir)/protocol_job_forward.defs
- at LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_forward.defs
-
- at LIBS_ONLY_FALSE@notifyServer.c notifyServer.h: /usr/include/mach/notify.defs
- at LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h /usr/include/mach/notify.defs
-
- at LIBS_ONLY_FALSE@mach_excServer.c mach_excServer.h: /usr/include/mach/mach_exc.defs
- at LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h /usr/include/mach/mach_exc.defs
-
- at LIBS_ONLY_FALSE@job_replyUser.c job_reply.h: $(srcdir)/protocol_job_reply.defs
- at LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_reply.defs
-
- at LIBS_ONLY_FALSE@launchd_internal.h launchd_internalServer.c launchd_internalUser.c launchd_internalServer.h: $(srcdir)/launchd_internal.defs
- at LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -sheader launchd_internalServer.h $(srcdir)/launchd_internal.defs
-
- at LIBS_ONLY_FALSE@install-data-hook:
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/usr/libexec
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/usr/include/servers
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/usr/local/include
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init.d
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_login_session.d
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/Library/LaunchDaemons
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/Library/LaunchAgents
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/System/Library/LaunchAgents
- at LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/System/Library/LaunchDaemons
- at LIBS_ONLY_FALSE@	cp $(srcdir)/liblaunch_public.h $(DESTDIR)/usr/include/launch.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/libvproc_public.h $(DESTDIR)/usr/include/vproc.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/libbootstrap_public.h $(DESTDIR)/usr/include/servers/bootstrap.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/libbootstrap_public.h $(DESTDIR)/usr/include/servers/bootstrap_defs.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/libbootstrap_private.h $(DESTDIR)/usr/local/include/bootstrap_priv.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/liblaunch_private.h $(DESTDIR)/usr/local/include/launch_priv.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/libvproc_private.h $(DESTDIR)/usr/local/include/vproc_priv.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/reboot2.h $(DESTDIR)/usr/local/include/reboot2.h
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	cp $(srcdir)/StartupItemContext $(DESTDIR)/usr/libexec
- at DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@	cp $(srcdir)/com.apple.SystemStarter.plist $(DESTDIR)/System/Library/LaunchDaemons
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

Modified: trunk/launchd/src/bootstrap.h
===================================================================
--- trunk/launchd/src/bootstrap.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/bootstrap.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -96,18 +96,21 @@
 typedef name_t *name_array_t;
 typedef int bootstrap_status_t;
 typedef bootstrap_status_t *bootstrap_status_array_t;
+typedef unsigned int bootstrap_property_t;
+typedef bootstrap_property_t * bootstrap_property_array_t;
 
 typedef boolean_t *bool_array_t;
 
 #define	BOOTSTRAP_MAX_LOOKUP_COUNT		20
 
-#define	BOOTSTRAP_SUCCESS			0
+#define	BOOTSTRAP_SUCCESS				0
 #define	BOOTSTRAP_NOT_PRIVILEGED		1100
 #define	BOOTSTRAP_NAME_IN_USE			1101
 #define	BOOTSTRAP_UNKNOWN_SERVICE		1102
 #define	BOOTSTRAP_SERVICE_ACTIVE		1103
-#define	BOOTSTRAP_BAD_COUNT			1104
-#define	BOOTSTRAP_NO_MEMORY			1105
+#define	BOOTSTRAP_BAD_COUNT				1104
+#define	BOOTSTRAP_NO_MEMORY				1105
+#define BOOTSTRAP_NO_CHILDREN			1106
 
 #define BOOTSTRAP_STATUS_INACTIVE		0
 #define BOOTSTRAP_STATUS_ACTIVE			1

Modified: trunk/launchd/src/bootstrap_priv.h
===================================================================
--- trunk/launchd/src/bootstrap_priv.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/bootstrap_priv.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -32,6 +32,9 @@
 #define BOOTSTRAP_DENY_JOB_CREATION	0x4
 #define BOOTSTRAP_PRIVILEGED_SERVER	0x8
 
+#define BOOTSTRAP_PROPERTY_SUBSET		1 << 1
+#define BOOTSTRAP_PROPERTY_PERUSER		1 << 2
+
 kern_return_t bootstrap_register2(mach_port_t bp, name_t service_name, mach_port_t sp, uint64_t flags);
 
 kern_return_t bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags);
@@ -40,7 +43,7 @@
 
 kern_return_t bootstrap_look_up_per_user(mach_port_t bp, const name_t service_name, uid_t target_user, mach_port_t *sp);
 
-kern_return_t bootstrap_set_policy(mach_port_t bp, pid_t target_pid, uint64_t flags, const char *target_service);
+kern_return_t bootstrap_lookup_children(mach_port_t bp, mach_port_array_t *children, name_array_t *names, bootstrap_property_array_t *properties, mach_msg_type_number_t *n_children);
 
 #pragma GCC visibility pop
 

Modified: trunk/launchd/src/launch_priv.h
===================================================================
--- trunk/launchd/src/launch_priv.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launch_priv.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -64,6 +64,7 @@
 #define LAUNCH_JOBKEY_MACH_TASKSPECIALPORT				"TaskSpecialPort"
 #define LAUNCH_JOBKEY_MACH_HOSTSPECIALPORT				"HostSpecialPort"
 #define LAUNCH_JOBKEY_MACH_ENTERKERNELDEBUGGERONCLOSE	"EnterKernelDebuggerOnClose"
+#define LAUNCH_JOBKEY_MACH_DRAINMESSAGESONCRASH			"DrainMessagesOnCrash"
 
 typedef struct _launch *launch_t;
 

Modified: trunk/launchd/src/launchctl.c
===================================================================
--- trunk/launchd/src/launchctl.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchctl.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -26,6 +26,7 @@
 #include "vproc.h"
 #include "vproc_priv.h"
 #include "vproc_internal.h"
+#include "bootstrap_priv.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 #include <CoreFoundation/CFPriv.h>
@@ -184,7 +185,10 @@
 static int umask_cmd(int argc, char *const argv[]);
 static int getrusage_cmd(int argc, char *const argv[]);
 static int bsexec_cmd(int argc, char *const argv[]);
+static int _bslist_cmd(mach_port_t bport, unsigned int depth);
 static int bslist_cmd(int argc, char *const argv[]);
+static int _bstree_cmd(mach_port_t bsport, unsigned int depth);
+static int bstree_cmd(int argc __attribute__((unused)), char * const argv[] __attribute__((unused)));
 
 static int exit_cmd(int argc, char *const argv[]) __attribute__((noreturn));
 static int help_cmd(int argc, char *const argv[]);
@@ -217,6 +221,7 @@
 	{ "umask",	umask_cmd,		"Change launchd's umask" },
 	{ "bsexec",	bsexec_cmd,		"Execute a process within a different Mach bootstrap subset" },
 	{ "bslist",	bslist_cmd,		"List Mach bootstrap services and optional servers" },
+	{ "bstree",	bstree_cmd,		"Show the entire Mach bootstrap tree. Requires root privileges." },
 	{ "exit",	exit_cmd,		"Exit the interactive invocation of launchctl" },
 	{ "quit",	exit_cmd,		"Quit the interactive invocation of launchctl" },
 	{ "help",	help_cmd,		"This help output" },
@@ -1398,7 +1403,7 @@
 exit_at_sigterm(int sig)
 {
 	if( sig == SIGTERM ) {
-		exit(EXIT_SUCCESS);
+		_exit(EXIT_SUCCESS);
 	}
 }
 
@@ -1429,6 +1434,13 @@
 
 	apply_sysctls_from_file("/etc/sysctl.conf");
 
+#if TARGET_OS_EMBEDDED
+	if (path_check("/etc/rc.boot")) {
+		const char *rcboot_tool[] = { "/etc/rc.boot", NULL };
+		assumes(fwexec(rcboot_tool, NULL) != -1);
+	}
+#endif
+
 	if (path_check("/etc/rc.cdrom")) {
 		const char *rccdrom_tool[] = { _PATH_BSHELL, "/etc/rc.cdrom", "multiuser", NULL };
 		
@@ -1454,13 +1466,6 @@
 		assumes(fwexec(rcserver_tool, NULL) != -1);
 	}
 
-#if TARGET_OS_EMBEDDED
-	if (path_check("/etc/rc.boot")) {
-		const char *rcboot_tool[] = { "/etc/rc.boot", NULL };
-		assumes(fwexec(rcboot_tool, true) != -1);
-	}
-#endif
-
 	read_launchd_conf();
 
 	if (path_check("/var/account/acct")) {
@@ -1635,11 +1640,9 @@
 	} else {
 		char *load_launchd_items[] = { "load", "-S", session_type, "-D", "all", NULL, NULL, NULL, NULL, NULL, NULL };
 		int the_argc = 5;
-		
-		/*
+
 		char *load_launchd_items_user[] = { "load", "-S", session_type, "-D", "user", NULL };
 		int the_argc_user = 0;
-		*/
 		
 		if (is_safeboot()) {
 			load_launchd_items[4] = "system";
@@ -1656,6 +1659,7 @@
 				load_launchd_items[the_argc] = "/etc/mach_init_per_login_session.d";
 				the_argc += 1;
 			} else {
+			#if 0
 				/* If we're a per-user launchd initializing our Background session,
 				 * don't forget about the user's launchd jobs that may be specified as
 				 * LimitLoadToSessionType = Background. <rdar://problem/5279345> We also
@@ -1663,15 +1667,31 @@
 				 * jobs in the local sessions may be responsible for mounting the home
 				 * directory.
 				 */
-				/*
 				if( getppid() != 1 ) {
+			#else
+				/* This deadlocks against mount_url when logging in with a network home
+				 * directory. For now, we'll just load user Background agents when
+				 * bootstrapping the Aqua or StandardIO sessions. This way, we can 
+				 * safely assume that the home directory is present. Yes it's a hack,
+				 * but it satisfies the user expectation in 99% of cases.
+				 */
+				if( 0 ) {
+			#endif
 					the_argc_user = 5;
 				}
-				*/
 			}
 		} else if (strcasecmp(session_type, VPROCMGR_SESSION_AQUA) == 0) {
 			load_launchd_items[5] = "/etc/mach_init_per_user.d";
 			the_argc += 1;
+			/* If we're bootstrapping the Aqua session, bootstrap the user's Background
+			 * agents.
+			 */
+			the_argc_user = 5;
+		} else if (strcasecmp(session_type, VPROCMGR_SESSION_AQUA) == 0) {
+			/* If we're bootstrapping the StandardIO session, bootstrap the user's Background
+			 * agents.
+			 */
+			the_argc_user = 5;
 		}
 
 		if (strcasecmp(session_type, VPROCMGR_SESSION_BACKGROUND) == 0) {
@@ -1682,20 +1702,17 @@
 		}
 
 		int retval = load_and_unload_cmd(the_argc, load_launchd_items);
-	#if 0 /* Maybe someday. */
 		if( retval == 0 && the_argc_user != 0 ) {
 			optind = 1;
-			/* Load user jobs. But first, we tell launchd to resume listening to
-			 * other clients, since this operation could potentially block if the user's
-			 * home directory is on a network volume or something.
-			 */
-			int64_t junk = 0;
-			vproc_err_t err = vproc_swap_integer(NULL, VPROC_GSK_WEIRD_BOOTSTRAP, &junk, NULL);
-			if( !err ) {
-				retval = load_and_unload_cmd(the_argc_user, load_launchd_items_user);
+			pid_t p = getpid();
+			if( sysctlbyname("vfs.generic.noremotehang", NULL, NULL, &p, sizeof(p)) == 0 ) {
+				int64_t junk = 0;
+				vproc_err_t err = vproc_swap_integer(NULL, VPROC_GSK_WEIRD_BOOTSTRAP, &junk, NULL);
+				if( !err ) {
+					retval = load_and_unload_cmd(the_argc_user, load_launchd_items_user);
+				}
 			}
 		}
-	#endif
 		
 		return retval;
 	}
@@ -2608,6 +2625,8 @@
 				return 1;
 			}
 		} while (getrootbs && last_bport != bport);
+	} else if( strcmp(s, "0") == 0 || strcmp(s, "NULL") == 0 ) {
+		bport = MACH_PORT_NULL;
 	} else {
 		int pid = atoi(s);
 
@@ -2661,37 +2680,101 @@
 }
 
 int
-bslist_cmd(int argc, char *const argv[])
+_bslist_cmd(mach_port_t bport, unsigned int depth)
 {
 	kern_return_t result;
-	mach_port_t bport = bootstrap_port;
 	name_array_t service_names;
 	mach_msg_type_number_t service_cnt, service_active_cnt;
 	bootstrap_status_array_t service_actives;
 	unsigned int i;
-
-	if (argc == 2)
-		bport = str2bsport(argv[1]);
-
+	
 	if (bport == MACH_PORT_NULL) {
 		fprintf(stderr, "Invalid bootstrap port\n");
 		return 1;
 	}
-
+	
 	result = bootstrap_info(bport, &service_names, &service_cnt, &service_actives, &service_active_cnt);
 	if (result != BOOTSTRAP_SUCCESS) {
 		fprintf(stderr, "bootstrap_info(): %d\n", result);
 		return 1;
 	}
+	
+	#define bport_state(x)	(((x) == BOOTSTRAP_STATUS_ACTIVE) ? "A" : ((x) == BOOTSTRAP_STATUS_ON_DEMAND) ? "D" : "I")
+	
+	for (i = 0; i < service_cnt ; i++) {
+		fprintf(stdout, "%*s%-3s%s\n", depth, "", bport_state((service_actives[i])), service_names[i]);
+	}
+	
+	return 0;
+}
 
-#define bport_state(x)	(((x) == BOOTSTRAP_STATUS_ACTIVE) ? "A" : ((x) == BOOTSTRAP_STATUS_ON_DEMAND) ? "D" : "I")
+int
+bslist_cmd(int argc, char *const argv[])
+{
+	mach_port_t bport = bootstrap_port;
+	if( argc == 2 ) {
+		bport = str2bsport(argv[1]);
+	}
+	
+	if( bport == MACH_PORT_NULL ) {
+		fprintf(stderr, "Invalid bootstrap port\n");
+		return 1;
+	}
+	
+	return _bslist_cmd(bport, 0);
+}
 
-	for (i = 0; i < service_cnt ; i++)
-		fprintf(stdout, "%-3s%s\n", bport_state((service_actives[i])), service_names[i]);
+int
+_bstree_cmd(mach_port_t bsport, unsigned int depth)
+{
+	if( bsport == MACH_PORT_NULL ) {
+		fprintf(stderr, "No root port!\n");
+		return 1;
+	}
+	
+	mach_port_array_t child_ports = NULL;
+	name_array_t child_names = NULL;
+	bootstrap_property_array_t child_props = NULL;
+	unsigned int cnt = 0;
+	
+	kern_return_t kr = bootstrap_lookup_children(bsport, &child_ports, &child_names, &child_props, (mach_msg_type_number_t *)&cnt);
+	if( kr != BOOTSTRAP_SUCCESS && kr != BOOTSTRAP_NO_CHILDREN ) {
+		if( kr == BOOTSTRAP_NOT_PRIVILEGED ) {
+			fprintf(stderr, "You must be root to perform this operation.\n");
+		} else {
+			fprintf(stderr, "bootstrap_lookup_children(): %d\n", kr);
+		}
 
+		return 1;
+	}
+	
+	unsigned int i = 0;
+	_bslist_cmd(bsport, depth);
+	
+	for( i = 0; i < cnt; i++ ) {
+		char *type = ( child_props[i] & BOOTSTRAP_PROPERTY_PERUSER ) ? "Per-user" : "Subset";
+		fprintf(stdout, "%*s%s (%s)/\n", depth, "", child_names[i], type);
+		if( child_ports[i] != MACH_PORT_NULL ) {
+			_bstree_cmd(child_ports[i], depth + 4);
+		}
+	}
+	
 	return 0;
 }
 
+int
+bstree_cmd(int argc __attribute__((unused)), char * const argv[] __attribute__((unused)))
+{
+	if( geteuid() != 0 ) {
+		fprintf(stderr, "You must be root to perform this operation.\n");
+		return 1;
+	} else {
+		fprintf(stdout, "System/\n");
+	}
+	
+	return _bstree_cmd(str2bsport("/"), 4);
+}
+
 bool
 is_legacy_mach_job(launch_data_t obj)
 {

Modified: trunk/launchd/src/launchd.c
===================================================================
--- trunk/launchd/src/launchd.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -68,6 +68,7 @@
 #include <spawn.h>
 #include <sched.h>
 #include <pthread.h>
+#include <sys/socket.h>
 
 #include "bootstrap.h"
 #include "vproc.h"
@@ -84,7 +85,7 @@
 
 extern char **environ;
 
-INTERNAL_ABI static void pfsystem_callback(void *, struct kevent *);
+static void pfsystem_callback(void *, struct kevent *);
 
 static kq_callback kqpfsystem_callback = pfsystem_callback;
 
@@ -296,7 +297,7 @@
 }
 
 
-INTERNAL_ABI int
+int
 _fd(int fd)
 {
 	if (fd >= 0) {
@@ -305,7 +306,7 @@
 	return fd;
 }
 
-INTERNAL_ABI void
+void
 launchd_shutdown(void)
 {
 	int64_t now;
@@ -336,7 +337,7 @@
 	launchd_assert(jobmgr_shutdown(root_jobmgr) != NULL);
 }
 
-INTERNAL_ABI void
+void
 launchd_single_user(void)
 {
 	runtime_syslog(LOG_NOTICE, "Going to single-user mode");
@@ -350,7 +351,7 @@
 	runtime_kill(-1, SIGKILL);
 }
 
-INTERNAL_ABI void
+void
 launchd_SessionCreate(void)
 {
 #if HAVE_SECURITY
@@ -443,7 +444,7 @@
 	launchd_assumes(kevent_mod(pfs, EVFILT_READ, EV_ADD, 0, 0, &kqpfsystem_callback) != -1);
 }
 
-INTERNAL_ABI void
+void
 pfsystem_callback(void *obj __attribute__((unused)), struct kevent *kev)
 {
 	bool new_networking_state;
@@ -459,7 +460,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 _log_launchd_bug(const char *rcs_rev, const char *path, unsigned int line, const char *test)
 {
 	int saved_errno = errno;

Modified: trunk/launchd/src/launchd.h
===================================================================
--- trunk/launchd/src/launchd.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -35,16 +35,16 @@
 extern bool g_force_old_kill_path;
 extern FILE *g_console;
 
-INTERNAL_ABI bool init_check_pid(pid_t);
+bool init_check_pid(pid_t);
 
-INTERNAL_ABI launch_data_t launchd_setstdio(int d, launch_data_t o);
-INTERNAL_ABI void launchd_SessionCreate(void);
-INTERNAL_ABI void launchd_shutdown(void);
-INTERNAL_ABI void launchd_single_user(void);
+launch_data_t launchd_setstdio(int d, launch_data_t o);
+void launchd_SessionCreate(void);
+void launchd_shutdown(void);
+void launchd_single_user(void);
 boolean_t launchd_mach_ipc_demux(mach_msg_header_t *Request, mach_msg_header_t *Reply);
 
-INTERNAL_ABI void mach_start_shutdown(void);
+void mach_start_shutdown(void);
 
-INTERNAL_ABI int _fd(int fd);
+int _fd(int fd);
 
 #endif

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_core_logic.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -99,6 +99,7 @@
 #include "protocol_vprocServer.h"
 #include "protocol_job_reply.h"
 #include "protocol_job_forward.h"
+#include "mach_excServer.h"
 
 /*
  * LAUNCHD_SAMPLE_TIMEOUT
@@ -148,12 +149,22 @@
 	SLIST_ENTRY(machservice) special_port_sle;
 	LIST_ENTRY(machservice) name_hash_sle;
 	LIST_ENTRY(machservice) port_hash_sle;
-	job_t			job;
+	job_t				job;
 	unsigned int		gen_num;
 	mach_port_name_t	port;
-	unsigned int		isActive:1, reset:1, recv:1, hide:1,
-				kUNCServer:1, per_user_hack:1, debug_on_close:1, per_pid:1,
-				delete_on_destruction:1, special_port_num:23;
+	unsigned int		isActive				:1,
+						reset					:1,
+						recv					:1,
+						hide					:1,
+						kUNCServer				:1,
+						per_user_hack			:1,
+						debug_on_close			:1,
+						per_pid					:1,
+						delete_on_destruction	:1,
+						drain_one				:1,
+						drain_all				:1,
+						special_port_num		:22;
+	
 	const char		name[0];
 };
 
@@ -178,6 +189,7 @@
 static bool machservice_active(struct machservice *);
 static const char *machservice_name(struct machservice *);
 static bootstrap_status_t machservice_status(struct machservice *);
+void machservice_drain_port(struct machservice *);
 
 struct socketgroup {
 	SLIST_ENTRY(socketgroup) sle;
@@ -285,6 +297,7 @@
 
 #define ACTIVE_JOB_HASH_SIZE	32
 #define ACTIVE_JOB_HASH(x)	(IS_POWER_OF_TWO(ACTIVE_JOB_HASH_SIZE) ? (x & (ACTIVE_JOB_HASH_SIZE - 1)) : (x % ACTIVE_JOB_HASH_SIZE))
+
 #define MACHSERVICE_HASH_SIZE	37
 
 struct jobmgr_s {
@@ -295,7 +308,7 @@
 	LIST_HEAD(, job_s) active_jobs[ACTIVE_JOB_HASH_SIZE];
 	LIST_HEAD(, machservice) ms_hash[MACHSERVICE_HASH_SIZE];
 	LIST_HEAD(, job_s) global_env_jobs;
-	LIST_HEAD(, job_s) pending_samples;
+	STAILQ_HEAD(, job_s) pending_samples;
 	mach_port_t jm_port;
 	mach_port_t req_port;
 	jobmgr_t parentmgr;
@@ -310,7 +323,7 @@
 					killed_hopefully_first_jobs		:1,
 					killed_normal_jobs				:1,
 					killed_hopefully_last_jobs		:1,
-					__junk							:25;
+					created_via_subset				:1;
 	char sample_log_file[PATH_MAX];
 	union {
 		const char name[0];
@@ -333,11 +346,12 @@
 static void jobmgr_dispatch_all(jobmgr_t jm, bool newmounthack);
 static void jobmgr_dequeue_next_sample(jobmgr_t jm);
 static job_t jobmgr_init_session(jobmgr_t jm, const char *session_type, bool sflag);
+static job_t jobmgr_find_by_pid_deep(jobmgr_t jm, pid_t p);
 static job_t jobmgr_find_by_pid(jobmgr_t jm, pid_t p, bool create_anon);
 static jobmgr_t jobmgr_find_by_name(jobmgr_t jm, const char *where);
 static job_t job_mig_intran2(jobmgr_t jm, mach_port_t mport, pid_t upid);
 static void job_export_all2(jobmgr_t jm, launch_data_t where);
-INTERNAL_ABI static void jobmgr_callback(void *obj, struct kevent *kev);
+static void jobmgr_callback(void *obj, struct kevent *kev);
 static void jobmgr_setup_env_from_other_jobs(jobmgr_t jm);
 static void jobmgr_export_env_from_other_jobs(jobmgr_t jm, launch_data_t dict);
 static struct machservice *jobmgr_lookup_service(jobmgr_t jm, const char *name, bool check_parent, pid_t target_pid);
@@ -354,7 +368,7 @@
 	LIST_ENTRY(job_s) pid_hash_sle;
 	LIST_ENTRY(job_s) label_hash_sle;
 	LIST_ENTRY(job_s) global_env_sle;
-	LIST_ENTRY(job_s) pending_samples_sle;
+	STAILQ_ENTRY(job_s) pending_samples_sle;
 	SLIST_ENTRY(job_s) curious_jobs_sle;
 	SLIST_HEAD(, socketgroup) sockets;
 	SLIST_HEAD(, calendarinterval) cal_intervals;
@@ -459,7 +473,9 @@
 			pending_sample				:1, /* This job needs to be sampled for some reason. */
 			kill_after_sample			:1, /* The job is to be killed after sampling. */
 			reap_after_sample			:1,	/* The job exited before sample did, so we should reap it after sample is done. */
-			nosy						:1; /* The job has an OtherJobEnabled KeepAlive criterion. */
+			nosy						:1, /* The job has an OtherJobEnabled KeepAlive criterion. */
+			crashed						:1, /* The job is the default Mach exception handler, and it crashed. */
+			reaped						:1; /* We've received NOTE_EXIT for the job. */
 	mode_t mask;
 	pid_t sample_pid;
 	const char label[0];
@@ -502,11 +518,8 @@
 #endif
 static void job_postfork_test_user(job_t j);
 static void job_log_pids_with_weird_uids(job_t j);
-#if 0
-static void job_force_sampletool(job_t j);
-#endif
 static void job_setup_exception_port(job_t j, task_t target_task);
-INTERNAL_ABI static void job_callback(void *obj, struct kevent *kev);
+static void job_callback(void *obj, struct kevent *kev);
 static void job_callback_proc(job_t j, struct kevent *kev);
 static void job_callback_timer(job_t j, void *ident);
 static void job_callback_read(job_t j, int ident);
@@ -549,7 +562,6 @@
 
 /* miscellaneous file local functions */
 static size_t get_kern_max_proc(void);
-static void ensure_root_bkgd_setup(void);
 static int dir_has_files(job_t j, const char *path);
 static char **mach_cmd2argv(const char *string);
 static size_t our_strhash(const char *s) __attribute__((pure));
@@ -563,7 +575,6 @@
 static mach_port_t the_exception_server;
 static bool did_first_per_user_launchd_BootCache_hack;
 #define JOB_BOOTCACHE_HACK_CHECK(j)	(unlikely(j->per_user && !did_first_per_user_launchd_BootCache_hack && (j->mach_uid >= 500) && (j->mach_uid != (uid_t)-2)))
-static jobmgr_t background_jobmgr;
 static job_t workaround_5477111;
 
 /* process wide globals */
@@ -631,7 +642,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 job_stop(job_t j)
 {
 	char extralog[100];
@@ -696,7 +707,7 @@
 	}
 }
 
-INTERNAL_ABI launch_data_t
+launch_data_t
 job_export(job_t j)
 {
 	launch_data_t tmp, tmp2, tmp3, r = launch_data_alloc(LAUNCH_DATA_DICTIONARY);
@@ -846,7 +857,7 @@
 
 }
 
-INTERNAL_ABI static void
+static void
 jobmgr_still_alive_with_check(jobmgr_t jm)
 {
 	jobmgr_log(jm, LOG_NOTICE | LOG_CONSOLE, "Still alive with %lu/%lu (normal/anonymous) children", total_children, total_anon_children);
@@ -927,7 +938,7 @@
 	runtime_closelog(); /* hack to flush logs */
 }
 
-INTERNAL_ABI jobmgr_t
+jobmgr_t
 jobmgr_shutdown(jobmgr_t jm)
 {
 	jobmgr_t jmi, jmn;
@@ -991,10 +1002,6 @@
 		jobmgr_assumes(jm, launchd_mport_close_recv(jm->jm_port) == KERN_SUCCESS);
 	}
 
-	if (jm == background_jobmgr) {
-		background_jobmgr = NULL;
-	}
-
 	if (jm->parentmgr) {
 		runtime_del_weak_ref();
 		SLIST_REMOVE(&jm->parentmgr->submgrs, jm, jobmgr_s, sle);
@@ -1017,7 +1024,7 @@
 	free(jm);
 }
 
-INTERNAL_ABI void
+void
 job_remove(job_t j, bool force)
 {
 	struct waiting_for_removal *w4r;
@@ -1028,7 +1035,7 @@
 	struct limititem *li;
 	struct mspolicy *msp;
 	struct envitem *ei;
-
+	
 	if (unlikely(j->p)) {
 		if (j->anonymous) {
 			job_reap(j);
@@ -1534,7 +1541,7 @@
 	return NULL;
 }
 
-INTERNAL_ABI job_t 
+job_t 
 job_import(launch_data_t pload)
 {
 	job_t j = jobmgr_import2(root_jobmgr, pload);
@@ -1547,7 +1554,7 @@
 	return job_dispatch(j, false);
 }
 
-INTERNAL_ABI launch_data_t
+launch_data_t
 job_import_bulk(launch_data_t pload)
 {
 	launch_data_t resp = launch_data_alloc(LAUNCH_DATA_ARRAY);
@@ -2246,7 +2253,7 @@
 	return true;
 }
 
-INTERNAL_ABI job_t 
+job_t 
 job_find(const char *label)
 {
 	job_t ji;
@@ -2265,7 +2272,28 @@
 	return NULL;
 }
 
+/* Should try and consolidate with job_mig_intran2() and jobmgr_find_by_pid(). */
 job_t
+jobmgr_find_by_pid_deep(jobmgr_t jm, pid_t p)
+{
+	job_t ji = NULL;
+	LIST_FOREACH( ji, &jm->active_jobs[ACTIVE_JOB_HASH(p)], pid_hash_sle ) {
+		if (ji->p == p && !ji->anonymous) {
+			return ji;
+		}
+	}
+
+	jobmgr_t jmi = NULL;
+	SLIST_FOREACH( jmi, &jm->submgrs, sle ) {
+		if( (ji = jobmgr_find_by_pid_deep(jmi, p)) ) {
+			break;
+		}
+	}
+
+	return ji;
+}
+
+job_t
 jobmgr_find_by_pid(jobmgr_t jm, pid_t p, bool create_anon)
 {
 	job_t ji;
@@ -2306,7 +2334,7 @@
 	return NULL;
 }
 
-INTERNAL_ABI job_t 
+job_t 
 job_mig_intran(mach_port_t p)
 {
 	struct ldcred *ldc = runtime_get_caller_creds();
@@ -2331,7 +2359,7 @@
 	return jr;
 }
 
-INTERNAL_ABI job_t
+job_t
 job_find_by_service_port(mach_port_t p)
 {
 	struct machservice *ms;
@@ -2345,7 +2373,7 @@
 	return NULL;
 }
 
-INTERNAL_ABI void
+void
 job_mig_destructor(job_t j)
 {
 	/*
@@ -2383,7 +2411,7 @@
 	}
 }
 
-INTERNAL_ABI launch_data_t
+launch_data_t
 job_export_all(void)
 {
 	launch_data_t resp = launch_data_alloc(LAUNCH_DATA_DICTIONARY);
@@ -2526,6 +2554,12 @@
 		j->wait_reply_port = MACH_PORT_NULL;
 	}
 
+	if( j->pending_sample ) {
+		job_log(j, LOG_NOTICE | LOG_CONSOLE, "Job exited before we could sample it.");
+		STAILQ_REMOVE(&j->mgr->pending_samples, j, job_s, pending_samples_sle);
+		j->pending_sample = false;
+	}
+
 	if (j->sent_signal_time) {
 		uint64_t td_sec, td_usec, td = runtime_get_nanoseconds_since(j->sent_signal_time);
 
@@ -2561,10 +2595,39 @@
 		if (SIGKILL == s || SIGTERM == s) {
 			job_log(j, LOG_NOTICE, "Exited: %s", strsignal(s));
 		} else {
-			job_log(j, LOG_WARNING, "Exited abnormally: %s", strsignal(s));
+			switch( s ) {
+				/* Signals which indicate a crash. */
+				case SIGILL		:
+				case SIGABRT	:
+				case SIGFPE		:
+				case SIGBUS		:
+				case SIGSEGV	:
+				case SIGSYS		:
+				/* If the kernel has posted NOTE_EXIT and the signal sent to the process was
+				 * SIGTRAP, assume that it's a crash.
+				 */
+				case SIGTRAP	:
+					j->crashed = true;
+					job_log(j, LOG_WARNING, "Job appears to have crashed: %s", strsignal(s));
+					break;
+				default			:
+					job_log(j, LOG_WARNING, "Exited abnormally: %s", strsignal(s));
+					break;
+			}
 		}
 	}
 
+	j->reaped = true;
+	
+	struct machservice *msi = NULL;
+	if( j->crashed ) {
+		SLIST_FOREACH( msi, &j->machservices, sle ) {
+			if( !msi->isActive && (msi->drain_one || msi->drain_all) ) {
+				machservice_drain_port(msi);
+			}
+		}
+	}
+	
 	if (j->hopefully_exits_first) {
 		j->mgr->hopefully_first_cnt--;
 	} else if (!j->anonymous && !j->hopefully_exits_last) {
@@ -2612,13 +2675,13 @@
 void 
 jobmgr_dequeue_next_sample(jobmgr_t jm)
 {
-	if( LIST_EMPTY(&jm->pending_samples) ) {
+	if( STAILQ_EMPTY(&jm->pending_samples) ) {
 		jobmgr_log(jm, LOG_DEBUG | LOG_CONSOLE, "Sample queue is empty.");
 		return;
 	}
 	
 	/* Dequeue the next in line. */
-	job_t j = LIST_FIRST(&jm->pending_samples);
+	job_t j = STAILQ_FIRST(&jm->pending_samples);
 	if( j->sample_pid ) {
 		job_log(j, LOG_DEBUG | LOG_CONSOLE, "Sampling is in progress. Not dequeuing next job.");
 		return;
@@ -2642,27 +2705,32 @@
 	snprintf(pidstr, sizeof(pidstr), "%u", j->p);
 	snprintf(j->mgr->sample_log_file, sizeof(j->mgr->sample_log_file), SHUTDOWN_LOG_DIR "/%s-%u.sample.txt", j->label, j->p);
 	job_log(j, LOG_DEBUG | LOG_CONSOLE, "Going to write sample to %s.", j->mgr->sample_log_file);
-	exception_mask_t exceptions =	EXC_MASK_BAD_ACCESS			|
-									EXC_MASK_BAD_INSTRUCTION	|
-									EXC_MASK_ARITHMETIC			|
-									EXC_MASK_CRASH				;
 	
 	if (job_assumes(j, unlink(jm->sample_log_file) != -1 || errno == ENOENT)) {
 		pid_t sp = 0;
 		char *sample_args[] = { "/usr/bin/sample", pidstr, "1", "-unsupportedShowArch", "-mayDie", "-file", j->mgr->sample_log_file, NULL };
+		thread_state_flavor_t f = 0;
+	#if defined (__ppc__) || defined(__ppc64__)
+		f = PPC_THREAD_STATE64;
+	#elif defined(__i386__) || defined(__x86_64__)
+		f = x86_THREAD_STATE;
+	#elif defined(__arm__)
+		f = ARM_THREAD_STATE;
+	#else
+		#error "unknown architecture"
+	#endif
+		
 	#if NEEDS_MULTI_THREADED_EXEC
 		posix_spawnattr_t psattr;
 		posix_spawnattr_init(psattr);
-		posix_spawnattr_setexceptionports_np(&psattr, exceptions, MACH_PORT_NULL, EXCEPTION_DEFAULT, 0);
+		posix_spawnattr_setexceptionports_np(&psattr, EXC_MASK_CRASH, runtime_get_kernel_port(), EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES , f);
 		
 		if (!job_assumes(j, (errno = posix_spawnp(&sp, sample_args[0], NULL, &psattr, sample_args, environ)) == 0)) {
-			job_log(j, LOG_ERR | LOG_CONSOLE, "Sampling failed for job! Kill it! Kill it with fire!");
-			LIST_REMOVE(j, pending_samples_sle);
-			job_kill(j);
+			job_log(j, LOG_ERR | LOG_CONSOLE, "Sampling for job failed!");
+			STAILQ_REMOVE(&jm->pending_samples, j, job_s, pending_samples_sle);
 			jobmgr_dequeue_next_sample(jm);
 		} else {
 			j->sample_pid = sp;
-			j->pending_sample = false;
 
 			/* Let us know when sample is done. ONESHOT is implicit if we're just interested in NOTE_EXIT. */
 			job_assumes(j, kevent_mod(sp, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, j) != -1);
@@ -2672,8 +2740,8 @@
 	#else
 		switch( (sp = vfork()) ) {
 			case 0	:
-				/* Neuter the exception port so that crashes don't hang sample, making it unreapable. */
-				task_set_exception_ports(mach_task_self(), exceptions, MACH_PORT_NULL, EXCEPTION_DEFAULT, 0);
+				/* Handle sample's exceptions directly, since ReportCrash may not be able to. */
+				task_set_exception_ports(mach_task_self(), EXC_MASK_CRASH, runtime_get_kernel_port(), EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, f);
 				execve(sample_args[0], sample_args, environ);
 				job_log(j, LOG_NOTICE | LOG_CONSOLE, "Could not exec(2): %d", errno);
 				_exit(EXIT_FAILURE);
@@ -2686,18 +2754,20 @@
 		
 		if( sp != -1 ) {
 			j->sample_pid = sp;
-			j->pending_sample = false;
 			
 			/* Let us know when sample is done. ONESHOT is implicit if we're just interested in NOTE_EXIT. */
 			job_assumes(j, kevent_mod(sp, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, j) != -1);
 		} else {
-			job_log(j, LOG_ERR | LOG_CONSOLE, "Sampling failed for job! Kill it! Kill it with fire!");
-			LIST_REMOVE(j, pending_samples_sle);
-			job_kill(j);
+			job_log(j, LOG_ERR | LOG_CONSOLE, "Sampling for job failed!");
+			STAILQ_REMOVE(&jm->pending_samples, j, job_s, pending_samples_sle);
 			jobmgr_dequeue_next_sample(jm);
 		}
 	#endif
+	} else {
+		STAILQ_REMOVE(&jm->pending_samples, j, job_s, pending_samples_sle);
 	}
+	
+	j->pending_sample = false;
 }
 
 void
@@ -2718,7 +2788,7 @@
 	}
 }
 
-INTERNAL_ABI job_t
+job_t
 job_dispatch(job_t j, bool kickstart)
 {
 	/*
@@ -2871,62 +2941,15 @@
 void
 job_reap_sample(job_t j)
 {
-	char *contents = NULL;
 	int wstatus = 0;
-	int logfile_fd = -1;
 	
 	if (!job_assumes(j, waitpid(j->sample_pid, &wstatus, 0) != -1)) {
 		goto out;
 	}
 
-	/*
-	 * This won't work if the VFS or filesystems are sick:
-	 * sync();
-	 */
-
-	if (!job_assumes(j, WIFEXITED(wstatus) && WEXITSTATUS(wstatus) == 0)) {
-		goto out;
-	}
-
-	/* Echo our sample file contents to the console. */
-	if (!job_assumes(j, (logfile_fd = open(root_jobmgr->sample_log_file, O_RDONLY|O_NOCTTY)) != -1)) {
-		job_log(j, LOG_NOTICE | LOG_CONSOLE, "No sample present at %s.", j->mgr->sample_log_file);
-		goto out;
-	}
-
-	struct stat sb;
-	if (!job_assumes(j, fstat(logfile_fd, &sb) != -1)) {
-		goto out;
-	}
-
-	if (sizeof(size_t) == 4 && !job_assumes(j, !(sb.st_size & 0xffffffff00000000llu))) {
-		goto out;
-	}
-
-	size_t contents_sz = (size_t)sb.st_size;
-	contents = (char *)malloc(contents_sz);
-
-	if (!job_assumes(j, contents != NULL)) {
-		goto out;
-	}
-
-	if (!job_assumes(j, read(logfile_fd, contents, contents_sz) == (ssize_t)contents_sz)) {
-		goto out;
-	}
-
-	/* Special case here. We don't want any formatting, just the sample contents. */
-	job_assumes(j, write(fileno(g_console), contents, contents_sz) == (ssize_t)contents_sz);
-
+	job_assumes(j, WIFEXITED(wstatus) && WEXITSTATUS(wstatus) == 0);
+	
 out:
-	if (contents) {
-		free(contents);
-	}
-
-	if (logfile_fd != -1) {
-		job_assumes(j, runtime_fsync(logfile_fd) != -1);
-		job_assumes(j, runtime_close(logfile_fd) != -1);
-	}
-	
 	if( j->kill_after_sample ) {
 		if (unlikely(j->debug_before_kill)) {
 			job_log(j, LOG_NOTICE, "Exit timeout elapsed. Entering the kernel debugger");
@@ -2939,7 +2962,7 @@
 
 	j->sample_pid = 0;
 	j->sampled = true;
-	LIST_REMOVE(j, pending_samples_sle);
+	STAILQ_REMOVE(&j->mgr->pending_samples, j, job_s, pending_samples_sle);
 	
 	if( j->reap_after_sample ) {
 		job_log(j, LOG_NOTICE | LOG_CONSOLE, "Sampling complete. Reaping.");
@@ -3053,24 +3076,29 @@
 			td -= j->exit_timeout;
 
 			job_log(j, LOG_WARNING | LOG_CONSOLE, "Did not die after sending SIGKILL %llu seconds ago...", td);
-		} else if ((!j->sampled && !j->sample_pid) && (!j->exit_timeout || (LAUNCHD_SAMPLE_TIMEOUT < j->exit_timeout))) {
-			/* This should work even if the job changes its exit_timeout midstream */
-			job_log(j, LOG_NOTICE | LOG_CONSOLE, "Sampling timeout elapsed (%u seconds). Scheduling a sample...", LAUNCHD_SAMPLE_TIMEOUT);
-			if (j->exit_timeout) {
-				unsigned int ttk = (j->exit_timeout - LAUNCHD_SAMPLE_TIMEOUT);
-				job_assumes(j, kevent_mod((uintptr_t)&j->exit_timeout, EVFILT_TIMER,
-							EV_ADD|EV_ONESHOT, NOTE_SECONDS, ttk, j) != -1);
-				job_log(j, LOG_NOTICE | LOG_CONSOLE, "Scheduled new exit timeout for %u seconds later", ttk);
+		} else if (!(j->sampled || j->sample_pid || j->pending_sample) && (!j->exit_timeout || (LAUNCHD_SAMPLE_TIMEOUT < j->exit_timeout))) {
+			if( do_apple_internal_logging ) {
+				/* This should work even if the job changes its exit_timeout midstream */
+				job_log(j, LOG_NOTICE | LOG_CONSOLE, "Sampling timeout elapsed (%u seconds). Scheduling a sample...", LAUNCHD_SAMPLE_TIMEOUT);
+				if (j->exit_timeout) {
+					unsigned int ttk = (j->exit_timeout - LAUNCHD_SAMPLE_TIMEOUT);
+					job_assumes(j, kevent_mod((uintptr_t)&j->exit_timeout, EVFILT_TIMER,
+											  EV_ADD|EV_ONESHOT, NOTE_SECONDS, ttk, j) != -1);
+					job_log(j, LOG_NOTICE | LOG_CONSOLE, "Scheduled new exit timeout for %u seconds later", ttk);
+				}
+				
+				STAILQ_INSERT_TAIL(&j->mgr->pending_samples, j, pending_samples_sle);
+				j->pending_sample = true;
+				jobmgr_dequeue_next_sample(j->mgr);
 			}
-			
-			LIST_INSERT_HEAD(&j->mgr->pending_samples, j, pending_samples_sle);
-			jobmgr_dequeue_next_sample(j->mgr);
 		} else {
-			if( !j->sampled ) {
+			if( !(j->sampled || j->sample_pid || j->pending_sample) && do_apple_internal_logging ) {
 				job_log(j, LOG_WARNING | LOG_CONSOLE, "Exit timeout elapsed (%u seconds). Will kill after sampling.", j->exit_timeout);
-				LIST_INSERT_HEAD(&j->mgr->pending_samples, j, pending_samples_sle);
+				STAILQ_INSERT_TAIL(&j->mgr->pending_samples, j, pending_samples_sle);
+				j->pending_sample = true;
+				j->kill_after_sample = true;
+				
 				jobmgr_dequeue_next_sample(j->mgr);
-				j->kill_after_sample = true;
 			} else {
 				if (unlikely(j->debug_before_kill)) {
 					job_log(j, LOG_NOTICE, "Exit timeout elapsed. Entering the kernel debugger");
@@ -3113,7 +3141,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 jobmgr_callback(void *obj, struct kevent *kev)
 {
 	jobmgr_t jm = obj;
@@ -3174,7 +3202,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 job_callback(void *obj, struct kevent *kev)
 {
 	job_t j = obj;
@@ -3244,8 +3272,6 @@
 		sipc = (!SLIST_EMPTY(&j->sockets) || !SLIST_EMPTY(&j->machservices));
 	}
 
-	j->checkedin = false;
-
 	if (sipc) {
 		job_assumes(j, socketpair(AF_UNIX, SOCK_STREAM, 0, spair) != -1);
 	}
@@ -3257,7 +3283,7 @@
 		job_assumes(j, fcntl(j->log_redirect_fd, F_SETFL, O_NONBLOCK) != -1);
 		job_assumes(j, kevent_mod(j->log_redirect_fd, EVFILT_READ, EV_ADD, 0, 0, j) != -1);
 	}
-
+	
 	switch (c = runtime_fork(j->weird_bootstrap ? j->j_port : j->mgr->jm_port)) {
 	case -1:
 		job_log_error(j, LOG_ERR, "fork() failed, will try again in one second");
@@ -3299,6 +3325,8 @@
 		job_log(j, LOG_DEBUG, "Started as PID: %u", c);
 
 		j->start_pending = false;
+		j->reaped = false;
+		j->crashed = false;
 
 		runtime_add_ref();
 		total_children++;
@@ -4063,7 +4091,7 @@
 	va_end(ap);
 }
 
-INTERNAL_ABI void
+void
 job_log(job_t j, int pri, const char *msg, ...)
 {
 	va_list ap;
@@ -4938,10 +4966,16 @@
 	}
 
 	SLIST_INSERT_HEAD(&j->machservices, ms, sle);
-	LIST_INSERT_HEAD(&j->mgr->ms_hash[hash_ms(ms->name)], ms, name_hash_sle);
+	
+	jobmgr_t jm_to_insert = j->mgr;
+	if( g_flat_mach_namespace ) {
+		jm_to_insert = j->mgr->created_via_subset ? j->mgr : root_jobmgr;
+	}
+	
+	LIST_INSERT_HEAD(&jm_to_insert->ms_hash[hash_ms(ms->name)], ms, name_hash_sle);	
 	LIST_INSERT_HEAD(&port_hash[HASH_PORT(ms->port)], ms, port_hash_sle);
 
-	job_log(j, LOG_INFO, "Mach service added: %s", name);
+	job_log(j, LOG_DEBUG, "Mach service added%s: %s", j->mgr->created_via_subset ? " to private namespace" : "", name);
 
 	return ms;
 out_bad2:
@@ -4994,12 +5028,10 @@
 #endif
 
 	if (likely(target_task)) {
-		job_assumes(j, task_set_exception_ports(target_task, EXC_MASK_CRASH, exc_port,
-					EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, f) == KERN_SUCCESS);
+		job_assumes(j, task_set_exception_ports(target_task, EXC_MASK_CRASH, exc_port, EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, f) == KERN_SUCCESS);
 	} else if (pid1_magic && the_exception_server) {
 		mach_port_t mhp = mach_host_self();
-		job_assumes(j, host_set_exception_ports(mhp, EXC_MASK_CRASH, the_exception_server,
-					EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, f) == KERN_SUCCESS);
+		job_assumes(j, host_set_exception_ports(mhp, EXC_MASK_CRASH, the_exception_server, EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, f) == KERN_SUCCESS);
 		job_assumes(j, launchd_mport_deallocate(mhp) == KERN_SUCCESS);
 	}
 }
@@ -5068,6 +5100,16 @@
 			job_assumes(ms->job, host_set_UNDServer(mhp, ms->port) == KERN_SUCCESS);
 		}
 		break;
+	case LAUNCH_DATA_STRING:
+		if( strcasecmp(key, LAUNCH_JOBKEY_MACH_DRAINMESSAGESONCRASH) == 0 ) {
+			const char *option = launch_data_get_string(obj);
+			if( strcasecmp(option, "One") == 0 ) {
+				ms->drain_one = true;
+			} else if( strcasecmp(option, "All") == 0 ) {
+				ms->drain_all = true;
+			}
+		}
+		break;
 	case LAUNCH_DATA_DICTIONARY:
 		job_set_exception_port(ms->job, ms->port);
 		break;
@@ -5408,6 +5450,7 @@
 	jmr->killed_hopefully_first_jobs	= false;
 	jmr->killed_normal_jobs 			= false;
 	jmr->killed_hopefully_last_jobs 	= false;
+	STAILQ_INIT(&jmr->pending_samples);
 
 	jobmgr_log(jmr, LOG_DEBUG, "Created job manager%s%s", jm ? " with parent: " : ".", jm ? jm->name : "");
 
@@ -5453,7 +5496,7 @@
 	return bootstrapper;
 }
 
-INTERNAL_ABI jobmgr_t
+jobmgr_t
 jobmgr_delete_anything_with_port(jobmgr_t jm, mach_port_t port)
 {
 	struct machservice *ms, *next_ms;
@@ -5504,7 +5547,6 @@
 
 	if (target_pid) {
 		//jobmgr_assumes(jm, !check_parent);
-
 		if (unlikely((target_j = jobmgr_find_by_pid(jm, target_pid, false)) == NULL)) {
 			return NULL;
 		}
@@ -5517,8 +5559,9 @@
 
 		return NULL;
 	}
-
-	LIST_FOREACH(ms, &jm->ms_hash[hash_ms(name)], name_hash_sle) {
+	
+	jobmgr_t jm_to_search = ( g_flat_mach_namespace && !jm->created_via_subset ) ? root_jobmgr : jm;
+	LIST_FOREACH(ms, &jm_to_search->ms_hash[hash_ms(name)], name_hash_sle) {
 		if (!ms->per_pid && strcmp(name, ms->name) == 0) {
 			return ms;
 		}
@@ -5562,6 +5605,54 @@
 }
 
 void
+machservice_drain_port(struct machservice *ms)
+{
+	if (!job_assumes(ms->job, ms->job->crashed == true)) {
+		return;
+	}
+	
+	if( ms->drain_one == false && ms->drain_all == false ) {
+		return;
+	}
+	
+	job_log(ms->job, LOG_NOTICE, "Draining %s...", ms->name);
+	
+	char req_buff[sizeof(union __RequestUnion__catch_mach_exc_subsystem) * 2];
+	char rep_buff[sizeof(union __ReplyUnion__catch_mach_exc_subsystem)];
+	mig_reply_error_t *req_hdr = (mig_reply_error_t *)&req_buff;
+	mig_reply_error_t *rep_hdr = (mig_reply_error_t *)&rep_buff;
+
+	mach_msg_return_t mr = ~MACH_MSG_SUCCESS;
+	
+	do {
+		/* This should be a direct check on the Mach service to see if it's an exception-handling
+		 * port, and it will break things if ReportCrash or SafetyNet start advertising other
+		 * Mach services. But for now, it should be okay.
+		 */
+		if( ms->job->alt_exc_handler || ms->job->internal_exc_handler ) {
+			mr = launchd_exc_runtime_once(ms->port, sizeof(req_buff), sizeof(rep_buff), req_hdr, rep_hdr, 0);
+		} else {
+			mach_msg_options_t options =	MACH_RCV_MSG		|
+											MACH_RCV_TIMEOUT	;
+
+			mr = mach_msg((mach_msg_header_t *)req_hdr, options, 0, sizeof(req_buff), ms->port, 0, MACH_PORT_NULL);
+			switch( mr ) {
+				case MACH_MSG_SUCCESS	:
+					mach_msg_destroy((mach_msg_header_t *)req_hdr);
+					break;
+				case MACH_RCV_TIMED_OUT	:
+					break;
+				case MACH_RCV_TOO_LARGE	:
+					runtime_syslog(LOG_WARNING, "Tried to receive message that was larger than %lu bytes", sizeof(req_buff));
+					break;
+				default					:
+					break;
+			}
+		}
+	} while( ms->drain_all && mr != MACH_RCV_TIMED_OUT );
+}
+
+void
 machservice_delete(job_t j, struct machservice *ms, bool port_died)
 {
 	if (unlikely(ms->debug_on_close)) {
@@ -5570,6 +5661,7 @@
 	}
 
 	if (ms->recv && job_assumes(j, !machservice_active(ms))) {
+		job_log(j, LOG_NOTICE, "Closing receive right for %s", ms->name);
 		job_assumes(j, launchd_mport_close_recv(ms->port) == KERN_SUCCESS);
 	}
 
@@ -5579,7 +5671,7 @@
 		the_exception_server = 0;
 	}
 
-	job_log(j, LOG_INFO, "Mach service deleted%s: %s", port_died ? " (port died)" : "", ms->name);
+	job_log(j, LOG_NOTICE, "Mach service deleted%s: %s", port_died ? " (port died)" : "", ms->name);
 
 	if (ms->special_port_num) {
 		SLIST_REMOVE(&special_ports, ms, machservice, special_port_sle);
@@ -5660,13 +5752,13 @@
 	return argv_ret;
 }
 
-INTERNAL_ABI void
+void
 job_checkin(job_t j)
 {
 	j->checkedin = true;
 }
 
-INTERNAL_ABI bool
+bool
 job_ack_port_destruction(mach_port_t p)
 {
 	struct machservice *ms;
@@ -5684,8 +5776,37 @@
 
 	j = ms->job;
 
-	job_log(j, LOG_DEBUG, "Receive right returned to us: %s", ms->name);
-
+	jobmgr_log(root_jobmgr, LOG_DEBUG, "Receive right returned to us: %s", ms->name);
+	
+	/* Without being the exception handler, NOTE_EXIT is our only way to tell if the job 
+	 * crashed, and we can't rely on NOTE_EXIT always being processed after all the job's
+	 * receive rights have been returned.
+	 *
+	 * So when we get receive rights back, check to see if the job has been reaped yet. If
+	 * not, then we add this service to a list of services to be drained on crash if it's 
+	 * requested that behavior. So, for a job with N receive rights all requesting that they
+	 * be drained on crash, we can safely handle the following sequence of events.
+	 * 
+	 * ReceiveRight0Returned
+	 * ReceiveRight1Returned
+	 * ReceiveRight2Returned
+	 * NOTE_EXIT (reap, get exit status)
+	 * ReceiveRight3Returned
+	 * .
+	 * .
+	 * .
+	 * ReceiveRight(N - 1)Returned
+	 */
+	
+	if( ms->drain_one || ms->drain_all ) {
+		if( j->crashed && j->reaped ) {
+			job_log(j, LOG_DEBUG, "Job has crashed. Draining port...");
+			machservice_drain_port(ms);
+		} else if( !(j->crashed || j->reaped) ) {
+			job_log(j, LOG_DEBUG, "Job's exit status is still unknown. Deferring drain.");
+		}
+	}
+	
 	ms->isActive = false;
 
 	if (ms->delete_on_destruction) {
@@ -5693,7 +5814,7 @@
 	} else if (ms->reset) {
 		machservice_resetport(j, ms);
 	}
-
+	
 	job_dispatch(j, false);
 
 	root_jobmgr = jobmgr_do_garbage_collection(root_jobmgr);
@@ -5701,7 +5822,7 @@
 	return true;
 }
 
-INTERNAL_ABI void
+void
 job_ack_no_senders(job_t j)
 {
 	j->priv_port_has_senders = false;
@@ -5714,115 +5835,6 @@
 	job_dispatch(j, false);
 }
 
-#if 0
-void
-job_force_sampletool(job_t j)
-{
-	struct stat sb;
-	char logfile[PATH_MAX];
-	char pidstr[100];
-	char *sample_args[] = { "sample", pidstr, "1", "-unsupportedShowArch", "-mayDie", "-file", logfile, NULL };
-	char *contents = NULL;
-	size_t contents_sz;
-	int logfile_fd = -1;
-	int console_fd = -1;
-	int wstatus;
-	pid_t sp;
-
-	if (j->sampled || j->per_user) {
-		return;
-	}
-
-	j->sampled = true;
-
-	if (!job_assumes(j, do_apple_internal_logging)) {
-		return;
-	}
-
-	if (!job_assumes(j, mkdir(SHUTDOWN_LOG_DIR, S_IRWXU) != -1 || errno == EEXIST)) {
-		return;
-	}
-
-	snprintf(pidstr, sizeof(pidstr), "%u", j->p);
-	snprintf(logfile, sizeof(logfile), SHUTDOWN_LOG_DIR "/%s-%u.sample.txt", j->label, j->p);
-
-	if (!job_assumes(j, unlink(logfile) != -1 || errno == ENOENT)) {
-		goto out;
-	}
-
-	/*
-	 * This will stall launchd for as long as the 'sample' tool runs.
-	 *
-	 * We didn't give the 'sample' tool a bootstrap port, so it therefore
-	 * can't deadlock against launchd.
-	 */
-	if (!job_assumes(j, (errno = posix_spawnp(&sp, sample_args[0], NULL, NULL, sample_args, environ)) == 0)) {
-		goto out;
-	}
-
-	job_log(j, LOG_DEBUG, "Waiting for 'sample' to finish.");
-
-	if (!job_assumes(j, waitpid(sp, &wstatus, 0) != -1)) {
-		goto out;
-	}
-
-	/*
-	 * This won't work if the VFS or filesystems are sick:
-	 * sync();
-	 */
-
-	if (!job_assumes(j, WIFEXITED(wstatus) && WEXITSTATUS(wstatus) == 0)) {
-		goto out;
-	}
-
-	if (!job_assumes(j, (logfile_fd = open(logfile, O_RDONLY|O_NOCTTY)) != -1)) {
-		goto out;
-	}
-
-	if (!job_assumes(j, (console_fd = open(_PATH_CONSOLE, O_WRONLY|O_APPEND|O_NOCTTY)) != -1)) {
-		goto out;
-	}
-
-	if (!job_assumes(j, fstat(logfile_fd, &sb) != -1)) {
-		goto out;
-	}
-
-	if (sizeof (size_t) == 4 && !job_assumes(j, !(sb.st_size & 0xffffffff00000000llu))) {
-		goto out;
-	}
-
-	contents_sz = (size_t) sb.st_size;
-
-	contents = malloc(contents_sz);
-
-	if (!job_assumes(j, contents != NULL)) {
-		goto out;
-	}
-
-	if (!job_assumes(j, read(logfile_fd, contents, contents_sz) == (ssize_t) contents_sz)) {
-		goto out;
-	}
-
-	job_assumes(j, write(console_fd, contents, contents_sz) == (ssize_t) contents_sz);
-
-out:
-	if (contents) {
-		free(contents);
-	}
-
-	if (logfile_fd != -1) {
-		job_assumes(j, runtime_fsync(logfile_fd) != -1);
-		job_assumes(j, runtime_close(logfile_fd) != -1);
-	}
-
-	if (console_fd != -1) {
-		job_assumes(j, runtime_close(console_fd) != -1);
-	}
-
-	job_log(j, LOG_DEBUG, "Finished sampling.");
-}
-#endif
-
 bool
 semaphoreitem_new(job_t j, semaphore_reason_t why, const char *what)
 {
@@ -5960,7 +5972,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 jobmgr_dispatch_all_semaphores(jobmgr_t jm)
 {
 	jobmgr_t jmi, jmn;
@@ -6418,7 +6430,7 @@
 
 	if (invalCnt) switch (inkey) {
 	case VPROC_GSK_ENVIRONMENT:
-		job_assumes(j, false);
+		
 		break;
 	case 0:
 		break;
@@ -6724,21 +6736,6 @@
 	return 0;
 }
 
-void
-ensure_root_bkgd_setup(void)
-{
-	if (likely(background_jobmgr) || !pid1_magic) {
-		return;
-	}
-
-	if (!jobmgr_assumes(root_jobmgr, (background_jobmgr = jobmgr_new(root_jobmgr, mach_task_self(), MACH_PORT_NULL, false, VPROCMGR_SESSION_BACKGROUND)) != NULL)) {
-		return;
-	}
-
-	background_jobmgr->req_port = 0;
-	jobmgr_assumes(root_jobmgr, launchd_mport_make_send(background_jobmgr->jm_port) == KERN_SUCCESS);
-}
-
 kern_return_t
 job_mig_lookup_per_user_context(job_t j, uid_t which_user, mach_port_t *up_cont)
 {
@@ -6762,14 +6759,6 @@
 
 	*up_cont = MACH_PORT_NULL;
 
-	if (which_user == 0) {
-		ensure_root_bkgd_setup();
-
-		*up_cont = background_jobmgr->jm_port;
-
-		return 0;
-	}
-
 	LIST_FOREACH(ji, &root_jobmgr->jobs, sle) {
 		if (!ji->per_user) {
 			continue;
@@ -6844,7 +6833,7 @@
 		if (unlikely((ms = machservice_new(j, servicename, serviceportp, per_pid_service)) == NULL)) {
 			return BOOTSTRAP_NO_MEMORY;
 		}
-
+		
 		/* Treat this like a legacy job. */
 		if( !j->legacy_mach_job ) {
 			ms->isActive = true;
@@ -6870,6 +6859,7 @@
 			job_log(j, LOG_WARNING, "Check-in of Mach service failed. Already active: %s", servicename);
 			return BOOTSTRAP_SERVICE_ACTIVE;
 		}
+		
 	}
 
 	machservice_request_notifications(ms);
@@ -7051,21 +7041,19 @@
 	name_array_t service_names = NULL;
 	bootstrap_status_array_t service_actives = NULL;
 	unsigned int cnt = 0, cnt2 = 0;
-	struct machservice *ms;
 	jobmgr_t jm;
-	job_t ji;
 
 	if (!launchd_assumes(j != NULL)) {
 		return BOOTSTRAP_NO_MEMORY;
 	}
 
-	jm = j->mgr;
+	jm = g_flat_mach_namespace ? root_jobmgr : j->mgr;
 
-	LIST_FOREACH(ji, &jm->jobs, sle) {
-		SLIST_FOREACH(ms, &ji->machservices, sle) {
-			if (!ms->per_pid) {
-				cnt++;
-			}
+	unsigned int i = 0;
+	struct machservice *msi = NULL;
+	for( i = 0; i < MACHSERVICE_HASH_SIZE; i++ ) {
+		LIST_FOREACH( msi, &jm->ms_hash[i], name_hash_sle ) {
+			cnt += !msi->per_pid ? 1 : 0;
 		}
 	}
 
@@ -7083,11 +7071,11 @@
 		goto out_bad;
 	}
 
-	LIST_FOREACH(ji, &jm->jobs, sle) {
-		SLIST_FOREACH(ms, &ji->machservices, sle) {
-			if (!ms->per_pid) {
-				strlcpy(service_names[cnt2], machservice_name(ms), sizeof(service_names[0]));
-				service_actives[cnt2] = machservice_status(ms);
+	for( i = 0; i < MACHSERVICE_HASH_SIZE; i++ ) {
+		LIST_FOREACH( msi, &jm->ms_hash[i], name_hash_sle ) {
+			if( !msi->per_pid ) {
+				strlcpy(service_names[cnt2], machservice_name(msi), sizeof(service_names[0]));
+				service_actives[cnt2] = machservice_status(msi);
 				cnt2++;
 			}
 		}
@@ -7113,13 +7101,193 @@
 	return BOOTSTRAP_NO_MEMORY;
 }
 
+kern_return_t
+job_mig_lookup_children(job_t j,	mach_port_array_t *child_ports,					mach_msg_type_number_t *child_ports_cnt, 
+									name_array_t *child_names,						mach_msg_type_number_t *child_names_cnt, 
+									bootstrap_property_array_t *child_properties,	mach_msg_type_number_t *child_properties_cnt)
+{
+	kern_return_t kr = BOOTSTRAP_NO_MEMORY;
+	if( !launchd_assumes(j != NULL) ) {
+		return BOOTSTRAP_NO_MEMORY;
+	}
+	
+	struct ldcred *ldc = runtime_get_caller_creds();
+	
+	/* Only allow root processes to look up children, even if we're in the per-user laucnhd.
+	 * Otherwise, this could be used to cross sessions, which counts as a security vulnerability
+	 * in a non-flat namespace.
+	 */
+	if( ldc->euid != 0 ) {
+		job_log(j, LOG_WARNING, "Attempt to look up children of bootstrap by unprivileged job.");
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+	
+	unsigned int cnt = 0;
+	
+	jobmgr_t jmr = j->mgr;
+	jobmgr_t jmi = NULL;
+	SLIST_FOREACH( jmi, &jmr->submgrs, sle ) {
+		cnt += g_flat_mach_namespace ? ( jmi->created_via_subset ? 1 : 0 ) : 1;
+	}
+	
+	/* Find our per-user launchds if we're PID 1. */
+	job_t ji = NULL;
+	if( pid1_magic ) {
+		LIST_FOREACH( ji, &jmr->jobs, sle ) {
+			cnt += ji->per_user ? 1 : 0;
+		}
+	}
+	
+	if( cnt == 0 ) {
+		return BOOTSTRAP_NO_CHILDREN;
+	}
+	
+	mach_port_array_t _child_ports = NULL;
+	mig_allocate((vm_address_t *)&_child_ports, cnt * sizeof(_child_ports[0]));
+	if( !job_assumes(j, _child_ports != NULL) ) {
+		kr = BOOTSTRAP_NO_MEMORY;
+		goto out_bad;
+	}
+	
+	name_array_t _child_names = NULL;
+	mig_allocate((vm_address_t *)&_child_names, cnt * sizeof(_child_names[0]));
+	if( !job_assumes(j, _child_names != NULL) ) {
+		kr = BOOTSTRAP_NO_MEMORY;
+		goto out_bad;
+	}
+	
+	bootstrap_property_array_t _child_properties = NULL;
+	mig_allocate((vm_address_t *)&_child_properties, cnt * sizeof(_child_properties[0]));
+	if( !job_assumes(j, _child_properties != NULL) ) {
+		kr = BOOTSTRAP_NO_MEMORY;
+		goto out_bad;
+	}
+	
+	unsigned int cnt2 = 0;
+	SLIST_FOREACH( jmi, &jmr->submgrs, sle ) {
+		if( (g_flat_mach_namespace && jmi->created_via_subset) || !g_flat_mach_namespace ) {
+			if( jobmgr_assumes(jmi, launchd_mport_make_send(jmi->jm_port)) == KERN_SUCCESS ) {
+				_child_ports[cnt2] = jmi->jm_port;
+			} else {
+				_child_ports[cnt2] = MACH_PORT_NULL;
+			}
+			
+			strlcpy(_child_names[cnt2], jmi->name, sizeof(_child_names[0]));
+			_child_properties[cnt2] |= BOOTSTRAP_PROPERTY_SUBSET;
+			
+			cnt2++;
+		}
+	}
+	
+	if( pid1_magic ) {
+		LIST_FOREACH( ji, &jmr->jobs, sle ) {
+			if( ji->per_user ) {
+				if( job_assumes(ji, SLIST_FIRST(&ji->machservices)->per_user_hack == true) ) {
+					mach_port_t port = machservice_port(SLIST_FIRST(&ji->machservices));
+					
+					if( job_assumes(ji, launchd_mport_copy_send(port)) == KERN_SUCCESS ) {
+						_child_ports[cnt2] = port;
+					} else {
+						_child_ports[cnt2] = MACH_PORT_NULL;
+					}
+				} else {
+					_child_ports[cnt2] = MACH_PORT_NULL;
+				}
+				
+				strlcpy(_child_names[cnt2], ji->label, sizeof(_child_names[0]));
+				_child_properties[cnt2] |= BOOTSTRAP_PROPERTY_PERUSER;
+				
+				cnt2++;
+			}
+		}
+	}
+	
+	*child_names_cnt = cnt;
+	*child_ports_cnt = cnt;
+	*child_properties_cnt = cnt;
+	
+	*child_names = _child_names;
+	*child_ports = _child_ports;
+	*child_properties = _child_properties;
+	
+	unsigned int i = 0;
+	for( i = 0; i < cnt; i++ ) {
+		job_log(j, LOG_DEBUG, "child_names[%u] = %s", i, (char *)_child_names[i]);
+	}
+	
+	return BOOTSTRAP_SUCCESS;
+out_bad:
+	if( _child_ports ) {
+		mig_deallocate((vm_address_t)_child_ports, cnt * sizeof(_child_ports[0]));
+	}
+	
+	if( _child_names ) {
+		mig_deallocate((vm_address_t)_child_names, cnt * sizeof(_child_ports[0]));
+	}
+	
+	if( _child_properties ) {
+		mig_deallocate((vm_address_t)_child_properties, cnt * sizeof(_child_properties[0]));
+	}
+	
+	return kr;
+}
+
+kern_return_t
+job_mig_transaction_count_for_pid(job_t j, pid_t p, int32_t *cnt, boolean_t *condemned)
+{
+	kern_return_t kr = KERN_FAILURE;
+	struct ldcred *ldc = runtime_get_caller_creds();
+	if( (ldc->euid != geteuid()) && (ldc->euid != 0) ) {
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+	
+	job_t j_for_pid = jobmgr_find_by_pid_deep(j->mgr, p);
+	if( j_for_pid ) {
+		if( j_for_pid->kill_via_shmem ) {
+			if( j_for_pid->shmem ) {
+				*cnt = j_for_pid->shmem->vp_shmem_transaction_cnt;
+				*condemned = j_for_pid->shmem->vp_shmem_flags & VPROC_SHMEM_EXITING;
+				*cnt += *condemned ? 1 : 0;
+			} else {
+				*cnt = 0;
+				*condemned = false;
+			}
+			
+			kr = BOOTSTRAP_SUCCESS;
+		} else {
+			kr = BOOTSTRAP_NO_MEMORY;
+		}
+	} else {
+		kr = BOOTSTRAP_UNKNOWN_SERVICE;
+	}
+	
+	return kr;
+}
+
+kern_return_t
+job_mig_pid_is_managed(job_t j __attribute__((unused)), pid_t p, boolean_t *managed)
+{
+	struct ldcred *ldc = runtime_get_caller_creds();
+	if( (ldc->euid != geteuid()) && (ldc->euid != 0) ) {
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+	
+	/* This is so loginwindow doesn't try to quit GUI apps that have been launched
+	 * directly by launchd as agents.
+	 */
+	job_t j_for_pid = jobmgr_find_by_pid_deep(root_jobmgr, p);
+	if( j_for_pid && !j_for_pid->anonymous && !j_for_pid->legacy_LS_job ) {
+		*managed = true;
+	}
+	
+	return BOOTSTRAP_SUCCESS;
+}
+
 jobmgr_t 
 jobmgr_find_by_name(jobmgr_t jm, const char *where)
 {
 	jobmgr_t jmi, jmi2;
 
-	ensure_root_bkgd_setup();
-
 	/* NULL is only passed for our custom API for LaunchServices. If that is the case, we do magic. */
 	if (where == NULL) {
 		if (strcasecmp(jm->name, VPROCMGR_SESSION_LOGINWINDOW) == 0) {
@@ -7178,50 +7346,9 @@
 		job_t j2;
 
 		if (j->mgr->session_initialized) {
-			if (ldc->uid == 0 && pid1_magic) {
-				if (strcmp(j->mgr->name, VPROCMGR_SESSION_LOGINWINDOW) == 0) {
-					job_t ji, jn;
-
-					LIST_FOREACH_SAFE(ji, &j->mgr->jobs, sle, jn) {
-						if (!ji->anonymous) {
-							job_remove(ji, false);
-						}
-					}
-
-					ensure_root_bkgd_setup();
-
-					SLIST_REMOVE(&j->mgr->parentmgr->submgrs, j->mgr, jobmgr_s, sle);
-					j->mgr->parentmgr = background_jobmgr;
-					SLIST_INSERT_HEAD(&j->mgr->parentmgr->submgrs, j->mgr, sle);
-
-					/*
-					 * We really should wait for all the jobs to die before proceeding. See 5351245 for more info.
-					 *
-					 * We have hacked around this in job_find() by ignoring jobs that are pending removal.
-					 */
-
-				} else if (strcmp(j->mgr->name, VPROCMGR_SESSION_AQUA) == 0) {
-					job_log(j, LOG_DEBUG, "Tried to move the Aqua session.");
-					return 0;
-				} else if (strcmp(j->mgr->name, VPROCMGR_SESSION_BACKGROUND) == 0) {
-					job_log(j, LOG_DEBUG, "Tried to move the background session.");
-					return 0;
-				} else {
-					job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
-					kr = BOOTSTRAP_NOT_PRIVILEGED;
-					goto out;
-				}
-			} else {
-				job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
-				kr = BOOTSTRAP_NOT_PRIVILEGED;
-				goto out;
-			}
-		} else if (ldc->uid == 0 && pid1_magic && strcmp(session_type, VPROCMGR_SESSION_STANDARDIO) == 0) {
-			ensure_root_bkgd_setup();
-
-			SLIST_REMOVE(&j->mgr->parentmgr->submgrs, j->mgr, jobmgr_s, sle);
-			j->mgr->parentmgr = background_jobmgr;
-			SLIST_INSERT_HEAD(&j->mgr->parentmgr->submgrs, j->mgr, sle);
+			job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
+			kr = BOOTSTRAP_NOT_PRIVILEGED;
+			goto out;
 		} else if (strcmp(session_type, VPROCMGR_SESSION_LOGINWINDOW) == 0) {
 			jobmgr_t jmi;
 
@@ -7332,6 +7459,55 @@
 }
 
 kern_return_t
+job_mig_detach_from_console(job_t j, mach_port_t *new_bsport)
+{
+	if( j->mgr == root_jobmgr ) {
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+	
+	if( !j->anonymous ) {
+		job_log(j, LOG_NOTICE, "Non-anonymous job tried to move to Background session. Please set LimitLoadToSessionType in the launchd property list to \"Background\" instead.");
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+	
+	job_log(j, LOG_NOTICE, "Detaching from console session.");
+	
+	/* Remove the job from it's current job manager. */
+	LIST_REMOVE(j, sle);
+	LIST_REMOVE(j, pid_hash_sle);
+
+	job_t ji = NULL, jit = NULL;
+	LIST_FOREACH_SAFE( ji, &j->mgr->global_env_jobs, global_env_sle, jit ) {
+		if( ji == j ) {
+			LIST_REMOVE(ji, global_env_sle);
+			break;
+		}
+	}
+	
+	/* Put the job into the background job manager. */
+	LIST_INSERT_HEAD(&root_jobmgr->jobs, j, sle);
+	LIST_INSERT_HEAD(&root_jobmgr->active_jobs[ACTIVE_JOB_HASH(j->p)], j, pid_hash_sle);
+	
+	if( ji ) {
+		LIST_INSERT_HEAD(&root_jobmgr->global_env_jobs, j, global_env_sle);
+	}
+	
+	/* Move our Mach services over. */
+	if( !g_flat_mach_namespace && !SLIST_EMPTY(&j->machservices) ) {
+		struct machservice *msi = NULL, *msit = NULL;
+		SLIST_FOREACH_SAFE( msi, &j->machservices, sle, msit ) {
+			LIST_REMOVE(msi, name_hash_sle);
+			LIST_INSERT_HEAD(&root_jobmgr->ms_hash[hash_ms(msi->name)], msi, name_hash_sle);
+		}
+	}
+	
+	j->mgr = root_jobmgr;
+	*new_bsport = root_jobmgr->jm_port;
+	
+	return KERN_SUCCESS;
+}
+
+kern_return_t
 job_mig_take_subset(job_t j, mach_port_t *reqport, mach_port_t *rcvright,
 		vm_offset_t *outdata, mach_msg_type_number_t *outdataCnt,
 		mach_port_array_t *portsp, unsigned int *ports_cnt)
@@ -7501,6 +7677,9 @@
 	}
 
 	*subsetportp = jmr->jm_port;
+	jmr->created_via_subset = true;
+	
+	job_log(j, LOG_NOTICE, "Job created a subset named \"%s\"", jmr->name);
 	return BOOTSTRAP_SUCCESS;
 }
 
@@ -7523,7 +7702,7 @@
 }
 
 kern_return_t
-job_mig_kickstart(job_t j, name_t targetlabel, pid_t *out_pid, mach_port_t *out_name_port, mach_port_t *obsrvr_port)
+job_mig_kickstart(job_t j, name_t targetlabel, pid_t *out_pid, mach_port_t *out_name_port, mach_port_t *obsrvr_port, unsigned int flags)
 {
 	struct ldcred *ldc = runtime_get_caller_creds();
 	job_t otherj;
@@ -7546,6 +7725,11 @@
 		return BOOTSTRAP_NOT_PRIVILEGED;
 	}
 
+	if( otherj->p && (flags & VPROCFLAG_STALL_JOB_EXEC) ) {
+		return BOOTSTRAP_SERVICE_ACTIVE;
+	}
+
+	otherj->stall_before_exec = ( flags & VPROCFLAG_STALL_JOB_EXEC );
 	otherj = job_dispatch(otherj, true);
 
 	if (!job_assumes(j, otherj && otherj->p)) {
@@ -7597,65 +7781,6 @@
 }
 
 kern_return_t
-job_mig_set_service_policy(job_t j, pid_t target_pid, uint64_t flags, name_t target_service)
-{
-	struct ldcred *ldc = runtime_get_caller_creds();
-	job_t target_j = NULL;
-
-	if (!launchd_assumes(j != NULL)) {
-		return BOOTSTRAP_NO_MEMORY;
-	}
-
-	target_j = jobmgr_find_by_pid(j->mgr, target_pid, true);
-
-	if (ldc->euid && (ldc->euid != getuid())) {		
-		int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, target_pid };
-		struct kinfo_proc kp;
-		size_t len = sizeof(kp);
-
-		job_assumes(j, sysctl(mib, 4, &kp, &len, NULL, 0) != -1);
-		job_assumes(j, len == sizeof(kp));
-
-		uid_t kp_euid = kp.kp_eproc.e_ucred.cr_uid;
-		uid_t kp_uid = kp.kp_eproc.e_pcred.p_ruid;
-
-		if( ldc->euid == kp_euid ) {
-			job_log(j, LOG_WARNING, "Working around rdar://problem/5982485 and allowing job to set policy for PID %u. We should discuss having %s run under a per-user launchd.", target_pid, target_j->label);
-		} else {
-			job_log(j, LOG_ERR, "Denied Mach service policy update requested by UID/EUID %u/%u against PID %u with UID/EUID %u/%u due to mismatched credentials.", ldc->uid, ldc->euid, target_pid, kp_uid, kp_euid);
-
-			return BOOTSTRAP_NOT_PRIVILEGED;
-		}
-	}
-
-	if (unlikely(!SLIST_EMPTY(&j->mspolicies))) {
-		job_log(j, LOG_WARNING, "Jobs that have policies assigned to them may not set policies.");
-		return BOOTSTRAP_NOT_PRIVILEGED;
-	}
-
-	if (unlikely(target_j == NULL)) {
-		if (job_assumes(j, errno == ESRCH)) {
-			job_log(j, LOG_ERR, "Could not find PID %u while trying to set Mach bootstrap service policy: %s", target_pid, target_service);
-		}
-		return BOOTSTRAP_NO_MEMORY;
-	}
-
-	job_log(j, LOG_DEBUG, "Setting policy on job \"%s\" for Mach service: %s", target_j->label, target_service);
-	if (target_service[0]) {
-		bool r = mspolicy_new(target_j, target_service, flags & BOOTSTRAP_ALLOW_LOOKUP, flags & BOOTSTRAP_PER_PID_SERVICE, false);
-
-		if (unlikely(!r) && job_assumes(j, errno == EEXIST)) {
-			job_log(j, LOG_ERR, "Tried to update a known policy on PID %u: %s", target_pid, target_service);
-		}
-	} else {
-		target_j->deny_unknown_mslookups = !(flags & BOOTSTRAP_ALLOW_LOOKUP);
-		target_j->deny_job_creation = flags & BOOTSTRAP_DENY_JOB_CREATION;
-	}
-
-	return 0;
-}
-
-kern_return_t
 job_mig_spawn(job_t j, vm_offset_t indata, mach_msg_type_number_t indataCnt, pid_t *child_pid, mach_port_t *obsvr_port)
 {
 	launch_data_t input_obj = NULL;
@@ -7743,7 +7868,7 @@
 	return BOOTSTRAP_SUCCESS;
 }
 
-INTERNAL_ABI void
+void
 jobmgr_init(bool sflag)
 {
 	const char *root_session_type = pid1_magic ? VPROCMGR_SESSION_SYSTEM : VPROCMGR_SESSION_BACKGROUND;

Modified: trunk/launchd/src/launchd_core_logic.h
===================================================================
--- trunk/launchd/src/launchd_core_logic.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_core_logic.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -29,29 +29,31 @@
 
 extern jobmgr_t root_jobmgr;
 extern mach_port_t inherited_bootstrap_port;
+extern bool g_flat_mach_namespace;
 
-INTERNAL_ABI void jobmgr_init(bool);
-INTERNAL_ABI jobmgr_t jobmgr_shutdown(jobmgr_t jm);
-INTERNAL_ABI void jobmgr_dispatch_all_semaphores(jobmgr_t jm);
+void jobmgr_init(bool);
+jobmgr_t jobmgr_shutdown(jobmgr_t jm);
+void jobmgr_dispatch_all_semaphores(jobmgr_t jm);
 void jobmgr_dispatch_all_interested(jobmgr_t jm, job_t j);
-INTERNAL_ABI jobmgr_t jobmgr_delete_anything_with_port(jobmgr_t jm, mach_port_t port);
+jobmgr_t jobmgr_delete_anything_with_port(jobmgr_t jm, mach_port_t port);
 
-INTERNAL_ABI launch_data_t job_export_all(void);
+launch_data_t job_export_all(void);
 
-INTERNAL_ABI job_t job_dispatch(job_t j, bool kickstart); /* returns j on success, NULL on job removal */
-INTERNAL_ABI job_t job_find(const char *label);
-INTERNAL_ABI job_t job_find_by_service_port(mach_port_t p);
-INTERNAL_ABI bool job_ack_port_destruction(mach_port_t p);
-INTERNAL_ABI bool job_is_anonymous(job_t j);
-INTERNAL_ABI launch_data_t job_export(job_t j);
-INTERNAL_ABI void job_stop(job_t j);
-INTERNAL_ABI void job_checkin(job_t j);
-INTERNAL_ABI void job_remove(job_t j, bool force);
-INTERNAL_ABI job_t job_import(launch_data_t pload);
-INTERNAL_ABI launch_data_t job_import_bulk(launch_data_t pload);
-INTERNAL_ABI job_t job_mig_intran(mach_port_t mp);
-INTERNAL_ABI void job_mig_destructor(job_t j);
-INTERNAL_ABI void job_ack_no_senders(job_t j);
-INTERNAL_ABI void job_log(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4)));
+job_t job_dispatch(job_t j, bool kickstart); /* returns j on success, NULL on job removal */
+job_t job_find(const char *label);
+job_t job_find_by_service_port(mach_port_t p);
+bool job_ack_port_destruction(mach_port_t p);
+bool job_is_anonymous(job_t j);
+launch_data_t job_export(job_t j);
+void job_stop(job_t j);
+void job_checkin(job_t j);
+void job_remove(job_t j, bool force);
+job_t job_import(launch_data_t pload);
+launch_data_t job_import_bulk(launch_data_t pload);
+job_t job_mig_intran(mach_port_t mp);
+void job_mig_destructor(job_t j);
+void job_ack_no_senders(job_t j);
+void job_log(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4)));
+void job_set_pid_crashed(pid_t p);
 
 #endif

Modified: trunk/launchd/src/launchd_internal.defs
===================================================================
--- trunk/launchd/src/launchd_internal.defs	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_internal.defs	2008-11-22 22:31:20 UTC (rev 23754)
@@ -28,6 +28,3 @@
 routine handle_kqueue(
 						__port	: mach_port_t;
 						__fd	: integer_t);
-
-routine handle_mport(
-						__port	: mach_port_t);
\ No newline at end of file

Modified: trunk/launchd/src/launchd_ktrace.c
===================================================================
--- trunk/launchd/src/launchd_ktrace.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_ktrace.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -1,6 +1,6 @@
 #include "launchd_ktrace.h"
 
-INTERNAL_ABI void
+void
 runtime_ktrace1(runtime_ktrace_code_t code)
 {
 	void *ra = __builtin_extract_return_addr(__builtin_return_address(1));
@@ -11,7 +11,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 runtime_ktrace0(runtime_ktrace_code_t code)
 {
 	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));
@@ -22,7 +22,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c)
 {
 	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));

Modified: trunk/launchd/src/launchd_ktrace.h
===================================================================
--- trunk/launchd/src/launchd_ktrace.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_ktrace.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -6,14 +6,6 @@
 
 extern bool do_apple_internal_logging;
 
-#ifndef INTERNAL_ABI
-#ifdef __i386__
-	#define INTERNAL_ABI __attribute__((regparm(3))) /* Enable register-passing for the first 3 arguments on i386. */
-#else
-	#define INTERNAL_ABI
-#endif
-#endif
-
 #ifndef DBG_LAUNCHD
 	#define DBG_LAUNCHD 34
 #endif
@@ -38,8 +30,8 @@
 } runtime_ktrace_code_t;
 
 /* All of these log the return address as "arg4" */
-INTERNAL_ABI void runtime_ktrace1(runtime_ktrace_code_t code);
-INTERNAL_ABI void runtime_ktrace0(runtime_ktrace_code_t code);
-INTERNAL_ABI void runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c);
+void runtime_ktrace1(runtime_ktrace_code_t code);
+void runtime_ktrace0(runtime_ktrace_code_t code);
+void runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c);
 
 #endif /* __LAUNCHD_KTRACE_H__ */

Modified: trunk/launchd/src/launchd_mig_types.defs
===================================================================
--- trunk/launchd/src/launchd_mig_types.defs	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_mig_types.defs	2008-11-22 22:31:20 UTC (rev 23754)
@@ -25,13 +25,15 @@
 
 type pid_t						= integer_t;
 type pid_array_t				= ^array [] of pid_t;
-type uid_t						= integer_t;
-type gid_t						= integer_t;
+type uid_t						= natural_t;
+type gid_t						= natural_t;
 type vproc_gsk_t				= integer_t;
 type logmsg_t					= c_string[*:2048];
 type cmd_t						= c_string[512];
 type name_t						= c_string[128];
 type name_array_t				= ^array [] of name_t;
+type bootstrap_property_t		= natural_t;
+type bootstrap_property_array_t	= ^array [] of bootstrap_property_t;
 type bootstrap_status_t			= integer_t;
 type bootstrap_status_array_t	= ^array [] of bootstrap_status_t;
 

Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_runtime.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -64,7 +64,7 @@
 #include "launchd_internalServer.h"
 #include "launchd_internal.h"
 #include "notifyServer.h"
-#include "excServer.h"
+#include "mach_excServer.h"
 
 /* We shouldn't be including these */
 #include "launch.h"
@@ -86,13 +86,13 @@
 static int bulk_kev_cnt;
 
 static pthread_t kqueue_demand_thread;
-static pthread_t demand_thread;
 
-static void *mport_demand_loop(void *arg);
+static void mportset_callback(void);
+static kq_callback kqmportset_callback = (kq_callback)mportset_callback;
 static void *kqueue_demand_loop(void *arg);
 static void log_kevent_struct(int level, struct kevent *kev_base, int indx);
 
-static boolean_t launchd_internal_demux(mach_msg_header_t *Request, mach_msg_header_t *Reply);
+boolean_t launchd_internal_demux(mach_msg_header_t *Request, mach_msg_header_t *Reply);
 static void record_caller_creds(mach_msg_header_t *mh);
 static void launchd_runtime2(mach_msg_size_t msg_size, mig_reply_error_t *bufRequest, mig_reply_error_t *bufReply);
 static mach_msg_size_t max_msg_size;
@@ -131,8 +131,9 @@
 bool do_apple_internal_logging;
 bool low_level_debug;
 bool g_force_old_kill_path = false;
+bool g_flat_mach_namespace = false;
 
-INTERNAL_ABI mach_port_t
+mach_port_t
 runtime_get_kernel_port(void)
 {
 	return launchd_internal_port;
@@ -143,7 +144,7 @@
 static int internal_mask_pri = LOG_UPTO(LOG_NOTICE);
 
 
-INTERNAL_ABI void
+void
 launchd_runtime_init(void)
 {
 	mach_msg_size_t mxmsgsz;
@@ -155,6 +156,8 @@
 	launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &demand_port_set)) == KERN_SUCCESS);
 	launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &ipc_port_set)) == KERN_SUCCESS);
 
+	launchd_assert(kevent_mod(demand_port_set, EVFILT_MACHPORT, EV_ADD, 0, 0, &kqmportset_callback) != -1);
+
 	launchd_assert(launchd_mport_create_recv(&launchd_internal_port) == KERN_SUCCESS);
 	launchd_assert(launchd_mport_make_send(launchd_internal_port) == KERN_SUCCESS);
 
@@ -172,16 +175,10 @@
 	launchd_assert(pthread_create(&kqueue_demand_thread, &attr, kqueue_demand_loop, NULL) == 0);
 	pthread_attr_destroy(&attr);
 
-	pthread_attr_init(&attr);
-	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-	pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN);
-	launchd_assert(pthread_create(&demand_thread, &attr, mport_demand_loop, NULL) == 0);
-	pthread_attr_destroy(&attr);
-
 	launchd_assumes(sysctlbyname("vfs.generic.noremotehang", NULL, NULL, &p, sizeof(p)) != -1);
 }
 
-INTERNAL_ABI void
+void
 launchd_runtime_init2(void)
 {
 	size_t i;
@@ -192,26 +189,7 @@
 	}
 }
 
-void *
-mport_demand_loop(void *arg __attribute__((unused)))
-{
-	mach_msg_empty_rcv_t dummy;
-	kern_return_t kr;
-
-	for (;;) {
-		kr = mach_msg(&dummy.header, MACH_RCV_MSG|MACH_RCV_LARGE, 0, 0, demand_port_set, 0, MACH_PORT_NULL);
-		if (unlikely(kr == MACH_RCV_PORT_CHANGED)) {
-			break;
-		} else if (!launchd_assumes(kr == MACH_RCV_TOO_LARGE)) {
-			continue;
-		}
-		launchd_assumes(handle_mport(launchd_internal_port) == 0);
-	}
-
-	return NULL;
-}
-
-INTERNAL_ABI const char *
+const char *
 proc_flags_to_C_names(unsigned int flags)
 {
 #define MAX_PFLAG_STR "P_ADVLOCK|P_CONTROLT|P_LP64|P_NOCLDSTOP|P_PPWAIT|P_PROFIL|P_SELECT|P_CONTINUED|P_SUGID|P_SYSTEM|P_TIMEOUT|P_TRACED|P_RESV3|P_WEXIT|P_EXEC|P_OWEUPC|P_AFFINITY|P_TRANSLATED|P_RESV5|P_CHECKOPENEVT|P_DEPENDENCY_CAPABLE|P_REBOOT|P_TBE|P_RESV7|P_THCWD|P_RESV9|P_RESV10|P_RESV11|P_NOSHLIB|P_FORCEQUOTA|P_NOCLDWAIT|P_NOREMOTEHANG|0xdeadbeeffeedface"
@@ -275,7 +253,7 @@
 	return flags_buf;
 }
 
-INTERNAL_ABI const char *
+const char *
 reboot_flags_to_C_names(unsigned int flags)
 {
 #define MAX_RB_STR "RB_ASKNAME|RB_SINGLE|RB_NOSYNC|RB_HALT|RB_INITNAME|RB_DFLTROOT|RB_ALTBOOT|RB_UNIPROC|RB_SAFEBOOT|RB_UPSDELAY|0xdeadbeeffeedface"
@@ -314,7 +292,7 @@
 	return flags_buf;
 }
 
-INTERNAL_ABI const char *
+const char *
 signal_to_C_name(unsigned int sig)
 {
 	static char unknown[25];
@@ -531,8 +509,8 @@
 			indx, kev->udata, kev->data, ident_buf, filter_str, flags_buf, fflags_buf);
 }
 
-kern_return_t
-x_handle_mport(mach_port_t junk __attribute__((unused)))
+void
+mportset_callback(void)
 {
 	mach_port_name_array_t members;
 	mach_msg_type_number_t membersCnt;
@@ -542,7 +520,7 @@
 	unsigned int i;
 
 	if (!launchd_assumes((errno = mach_port_get_set_status(mach_task_self(), demand_port_set, &members, &membersCnt)) == KERN_SUCCESS)) {
-		return 1;
+		return;
 	}
 
 	for (i = 0; i < membersCnt; i++) {
@@ -570,8 +548,6 @@
 
 	launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)members,
 				(vm_size_t) membersCnt * sizeof(mach_port_name_t)) == KERN_SUCCESS);
-
-	return 0;
 }
 
 void *
@@ -646,7 +622,7 @@
 
 
 
-INTERNAL_ABI void
+void
 launchd_runtime(void)
 {
 	mig_reply_error_t *req = NULL, *resp = NULL;
@@ -678,19 +654,19 @@
 	}
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_set_bport(mach_port_t name)
 {
 	return errno = task_set_bootstrap_port(mach_task_self(), name);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_get_bport(mach_port_t *name)
 {
 	return errno = task_get_bootstrap_port(mach_task_self(), name);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_mport_notify_req(mach_port_t name, mach_msg_id_t which)
 {
 	mach_port_mscount_t msgc = (which == MACH_NOTIFY_PORT_DESTROYED) ? 0 : 1;
@@ -714,7 +690,7 @@
 	return errno;
 }
 
-INTERNAL_ABI pid_t
+pid_t
 runtime_fork(mach_port_t bsport)
 {
 	sigset_t emptyset, oset;
@@ -755,7 +731,7 @@
 }
 
 
-INTERNAL_ABI void
+void
 runtime_set_timeout(timeout_callback to_cb, unsigned int sec)
 {
 	if (sec == 0 || to_cb == NULL) {
@@ -767,7 +743,7 @@
 	runtime_idle_timeout = sec * 1000;
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 runtime_add_mport(mach_port_t name, mig_callback demux, mach_msg_size_t msg_size)
 {
 	size_t needed_table_sz = (MACH_PORT_INDEX(name) + 1) * sizeof(mig_callback);
@@ -801,7 +777,7 @@
 	return errno = mach_port_move_member(mach_task_self(), name, target_set);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 runtime_remove_mport(mach_port_t name)
 {
 	mig_cb_table[MACH_PORT_INDEX(name)] = NULL;
@@ -809,31 +785,37 @@
 	return errno = mach_port_move_member(mach_task_self(), name, MACH_PORT_NULL);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_mport_make_send(mach_port_t name)
 {
 	return errno = mach_port_insert_right(mach_task_self(), name, name, MACH_MSG_TYPE_MAKE_SEND);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
+launchd_mport_copy_send(mach_port_t name)
+{
+	return errno = mach_port_insert_right(mach_task_self(), name, name, MACH_MSG_TYPE_COPY_SEND);
+}
+
+kern_return_t
 launchd_mport_close_recv(mach_port_t name)
 {
 	return errno = mach_port_mod_refs(mach_task_self(), name, MACH_PORT_RIGHT_RECEIVE, -1);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_mport_create_recv(mach_port_t *name)
 {
 	return errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, name);
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 launchd_mport_deallocate(mach_port_t name)
 {
 	return errno = mach_port_deallocate(mach_task_self(), name);
 }
 
-INTERNAL_ABI int
+int
 kevent_bulk_mod(struct kevent *kev, size_t kev_cnt)
 {
 	size_t i;
@@ -845,7 +827,7 @@
 	return kevent(mainkq, kev, kev_cnt, kev, kev_cnt, NULL);
 }
 
-INTERNAL_ABI int
+int
 kevent_mod(uintptr_t ident, short filter, u_short flags, u_int fflags, intptr_t data, void *udata)
 {
 	struct kevent kev;
@@ -901,7 +883,7 @@
 	} else if (notify_server_routine(Request)) {
 		return notify_server(Request, Reply);
 	} else {
-		return exc_server(Request, Reply);
+		return mach_exc_server(Request, Reply);
 	}
 }
 
@@ -1000,12 +982,65 @@
 
 }
 
-INTERNAL_ABI struct ldcred *
+struct ldcred *
 runtime_get_caller_creds(void)
 {
 	return &ldc;
 }
 
+mach_msg_return_t
+launchd_exc_runtime_once(mach_port_t port, mach_msg_size_t rcv_msg_size, mach_msg_size_t send_msg_size, mig_reply_error_t *bufRequest, mig_reply_error_t *bufReply, mach_msg_timeout_t to)
+{
+	mach_msg_return_t mr = ~MACH_MSG_SUCCESS;
+	mach_msg_option_t rcv_options =	MACH_RCV_MSG										|
+									MACH_RCV_TIMEOUT									|
+									MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_AUDIT)	|
+									MACH_RCV_TRAILER_TYPE(MACH_MSG_TRAILER_FORMAT_0)	;
+				
+	do {
+		mr = mach_msg(&bufRequest->Head, rcv_options, 0, rcv_msg_size, port, to, MACH_PORT_NULL);
+		switch( mr ) {
+			case MACH_RCV_TIMED_OUT	:
+				runtime_syslog(LOG_NOTICE, "Message queue is empty.");
+				break;
+			case MACH_RCV_TOO_LARGE	:
+				runtime_syslog(LOG_NOTICE, "Message is larger than %u bytes.", rcv_msg_size);
+				break;
+			default					:
+				launchd_assumes(mr == MACH_MSG_SUCCESS);
+		}
+		
+		if( mr == MACH_MSG_SUCCESS ) {
+			if( !launchd_assumes(mach_exc_server(&bufRequest->Head, &bufReply->Head) == TRUE) ) {
+				runtime_syslog(LOG_WARNING, "Exception server routine failed.");
+				break;
+			}
+			
+			mach_msg_return_t smr = ~MACH_MSG_SUCCESS;
+			mach_msg_option_t send_options =	MACH_SEND_MSG		|
+												MACH_SEND_TIMEOUT	;
+			
+			launchd_assumes(bufReply->Head.msgh_size <= send_msg_size);
+			smr = mach_msg(&bufReply->Head, send_options, bufReply->Head.msgh_size, 0, MACH_PORT_NULL, to + 100, MACH_PORT_NULL);
+			switch( smr ) {
+				case MACH_SEND_TIMED_OUT	:
+					runtime_syslog(LOG_WARNING, "Timed out while trying to send reply to exception message.");
+					break;
+				case MACH_SEND_INVALID_DEST	:
+					runtime_syslog(LOG_WARNING, "Tried sending a message to a port that we don't possess a send right to.");
+					break;
+				default						:
+					if( !launchd_assumes(smr == MACH_MSG_SUCCESS) ) {
+						runtime_syslog(LOG_WARNING, "Couldn't deliver exception reply: 0x%x", smr);
+					}
+					break;
+			}
+		}
+	} while( 0 );
+	
+	return mr;
+}
+
 void
 launchd_runtime2(mach_msg_size_t msg_size, mig_reply_error_t *bufRequest, mig_reply_error_t *bufReply)
 {
@@ -1026,7 +1061,7 @@
 		to = MACH_MSG_TIMEOUT_NONE;
 
 		if (unlikely(msg_size != max_msg_size)) {
-			/* The buffer isn't big enougth to receive messages anymore... */
+			/* The buffer isn't big enough to receive messages anymore... */
 			tmp_options &= ~MACH_RCV_MSG;
 			options &= ~MACH_RCV_MSG;
 			if (!(tmp_options & MACH_SEND_MSG)) {
@@ -1143,7 +1178,7 @@
 	}
 }
 
-INTERNAL_ABI int
+int
 runtime_close(int fd)
 {
 	int i;
@@ -1165,7 +1200,7 @@
 	return close(fd);
 }
 
-INTERNAL_ABI void
+void
 runtime_closelog(void)
 {
 	runtime_log_push();
@@ -1176,7 +1211,7 @@
 	}
 }
 
-INTERNAL_ABI int
+int
 runtime_fsync(int fd)
 {
 #if 0
@@ -1190,7 +1225,7 @@
 #endif
 }
 
-INTERNAL_ABI int
+int
 runtime_setlogmask(int maskpri)
 {
 	internal_mask_pri = maskpri;
@@ -1198,7 +1233,7 @@
 	return internal_mask_pri;
 }
 
-INTERNAL_ABI void
+void
 runtime_syslog(int pri, const char *message, ...)
 {
 	bool log_to_console = pri & LOG_CONSOLE;
@@ -1217,7 +1252,7 @@
 	va_end(ap);
 }
 
-INTERNAL_ABI void
+void
 runtime_vsyslog(struct runtime_syslog_attr *attr, bool echo_to_console, const char *message, va_list args)
 {
 	int saved_errno = errno;
@@ -1357,7 +1392,7 @@
 	mig_deallocate(outval, outvalCnt);
 }
 
-INTERNAL_ABI void
+void
 runtime_log_push(void)
 {
 	static pthread_mutex_t ourlock = PTHREAD_MUTEX_INITIALIZER;
@@ -1411,7 +1446,7 @@
 	}
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 runtime_log_forward(uid_t forward_uid, gid_t forward_gid, vm_offset_t inval, mach_msg_type_number_t invalCnt)
 {
 	struct logmsg_s *lm, *lm_walk;
@@ -1447,7 +1482,7 @@
 	return 0;
 }
 
-INTERNAL_ABI kern_return_t
+kern_return_t
 runtime_log_drain(mach_port_t srp, vm_offset_t *outval, mach_msg_type_number_t *outvalCnt)
 {
 	launchd_assumes(drain_reply_port == 0);
@@ -1471,7 +1506,7 @@
  * In the long run, reference counting should completely automate when a
  * process can and should exit.
  */
-INTERNAL_ABI void
+void
 runtime_add_ref(void)
 {
 	if (!pid1_magic) {
@@ -1480,7 +1515,7 @@
 	runtime_busy_cnt++;
 }
 
-INTERNAL_ABI void
+void
 runtime_del_ref(void)
 {
 	if (!pid1_magic) {
@@ -1489,7 +1524,7 @@
 	runtime_busy_cnt--;
 }
 
-INTERNAL_ABI void
+void
 runtime_add_weak_ref(void)
 {
 	if (!pid1_magic) {
@@ -1498,7 +1533,7 @@
 	runtime_standby_cnt++;
 }
 
-INTERNAL_ABI void
+void
 runtime_del_weak_ref(void)
 {
 	if (!pid1_magic) {
@@ -1508,40 +1543,40 @@
 }
 
 kern_return_t
-catch_exception_raise(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
-		exception_type_t exception, exception_data_t code, mach_msg_type_number_t codeCnt)
+catch_mach_exception_raise(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
+		exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt)
 {
 	pid_t p4t = -1;
 
 	launchd_assumes(pid_for_task(task, &p4t) == 0);
-
+	
 	runtime_syslog(LOG_NOTICE, "%s(): PID: %u thread: 0x%x type: 0x%x code: %p codeCnt: 0x%x",
 			__func__, p4t, thread, exception, code, codeCnt);
-
+	
 	launchd_assumes(launchd_mport_deallocate(thread) == KERN_SUCCESS);
 	launchd_assumes(launchd_mport_deallocate(task) == KERN_SUCCESS);
 
-	return 0;
+	return KERN_SUCCESS;
 }
 
 kern_return_t
-catch_exception_raise_state(mach_port_t exception_port __attribute__((unused)),
-		exception_type_t exception, const exception_data_t code, mach_msg_type_number_t codeCnt,
+catch_mach_exception_raise_state(mach_port_t exception_port __attribute__((unused)),
+		exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt,
 		int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt,
 		thread_state_t new_state, mach_msg_type_number_t *new_stateCnt)
 {
 	runtime_syslog(LOG_NOTICE, "%s(): type: 0x%x code: %p codeCnt: 0x%x flavor: %p old_state: %p old_stateCnt: 0x%x new_state: %p new_stateCnt: %p",
 			__func__, exception, code, codeCnt, flavor, old_state, old_stateCnt, new_state, new_stateCnt);
-
+	
 	memcpy(new_state, old_state, old_stateCnt * sizeof(old_state[0]));
 	*new_stateCnt = old_stateCnt;
 
-	return 0;
+	return KERN_SUCCESS;
 }
 
 kern_return_t
-catch_exception_raise_state_identity(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
-		exception_type_t exception, exception_data_t code, mach_msg_type_number_t codeCnt,
+catch_mach_exception_raise_state_identity(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
+		exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt,
 		int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt,
 		thread_state_t new_state, mach_msg_type_number_t *new_stateCnt)
 {
@@ -1551,17 +1586,17 @@
 
 	runtime_syslog(LOG_NOTICE, "%s(): PID: %u thread: 0x%x type: 0x%x code: %p codeCnt: 0x%x flavor: %p old_state: %p old_stateCnt: 0x%x new_state: %p new_stateCnt: %p",
 			__func__, p4t, thread, exception, code, codeCnt, flavor, old_state, old_stateCnt, new_state, new_stateCnt);
-
+	
 	memcpy(new_state, old_state, old_stateCnt * sizeof(old_state[0]));
 	*new_stateCnt = old_stateCnt;
 
 	launchd_assumes(launchd_mport_deallocate(thread) == KERN_SUCCESS);
 	launchd_assumes(launchd_mport_deallocate(task) == KERN_SUCCESS);
 
-	return 0;
+	return KERN_SUCCESS;
 }
 
-INTERNAL_ABI void
+void
 launchd_log_vm_stats(void)
 {
 	static struct vm_statistics orig_stats;
@@ -1609,7 +1644,7 @@
 	launchd_mport_deallocate(mhs);
 }
 
-INTERNAL_ABI int64_t
+int64_t
 runtime_get_wall_time(void)
 {
 	struct timeval tv;
@@ -1624,25 +1659,25 @@
 	return r;
 }
 
-INTERNAL_ABI uint64_t
+uint64_t
 runtime_get_opaque_time(void)
 {
 	return mach_absolute_time();
 }
 
-INTERNAL_ABI uint64_t
+uint64_t
 runtime_get_opaque_time_of_event(void)
 {
 	return time_of_mach_msg_return;
 }
 
-INTERNAL_ABI uint64_t
+uint64_t
 runtime_get_nanoseconds_since(uint64_t o)
 {
 	return runtime_opaque_time_to_nano(runtime_get_opaque_time_of_event() - o);
 }
 
-INTERNAL_ABI uint64_t
+uint64_t
 runtime_opaque_time_to_nano(uint64_t o)
 {
 #if defined(__i386__) || defined(__x86_64__)
@@ -1698,4 +1733,8 @@
 	if( stat("/var/db/.launchd_disable_sudden_termination", &sb) == 0 ) {
 		g_force_old_kill_path = true;
 	}
+	
+	if( !pid1_magic && stat("/var/db/.launchd_flat_per_user_namespace", &sb) == 0 ) {
+		g_flat_mach_namespace = true;
+	}
 }

Modified: trunk/launchd/src/launchd_runtime.h
===================================================================
--- trunk/launchd/src/launchd_runtime.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_runtime.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -71,14 +71,6 @@
 
 #endif
 
-#ifndef INTERNAL_ABI
-#ifdef __i386__
-#define INTERNAL_ABI __attribute__((regparm(3)))
-#else
-#define INTERNAL_ABI
-#endif
-#endif
-
 #define	likely(x)	__builtin_expect((bool)(x), true)
 #define	unlikely(x)	__builtin_expect((bool)(x), false)
 
@@ -100,51 +92,54 @@
 
 #define launchd_assert(e)	if (__builtin_constant_p(e)) { char __compile_time_assert__[e ? 1 : -1] __attribute__((unused)); } else if (!launchd_assumes(e)) { abort(); }
 
-INTERNAL_ABI void _log_launchd_bug(const char *rcs_rev, const char *path, unsigned int line, const char *test);
+void _log_launchd_bug(const char *rcs_rev, const char *path, unsigned int line, const char *test);
 
-typedef INTERNAL_ABI void (*kq_callback)(void *, struct kevent *);
+typedef void (*kq_callback)(void *, struct kevent *);
 typedef boolean_t (*mig_callback)(mach_msg_header_t *, mach_msg_header_t *);
-typedef INTERNAL_ABI void (*timeout_callback)(void);
+typedef void (*timeout_callback)(void);
 
 extern bool pid1_magic;
 extern bool low_level_debug;
 extern char g_username[128];
 
-INTERNAL_ABI mach_port_t runtime_get_kernel_port(void);
+mach_port_t runtime_get_kernel_port(void);
+extern boolean_t launchd_internal_demux(mach_msg_header_t *Request, mach_msg_header_t *Reply);
 
-INTERNAL_ABI void runtime_add_ref(void);
-INTERNAL_ABI void runtime_del_ref(void);
-INTERNAL_ABI void runtime_add_weak_ref(void);
-INTERNAL_ABI void runtime_del_weak_ref(void);
+void runtime_add_ref(void);
+void runtime_del_ref(void);
+void runtime_add_weak_ref(void);
+void runtime_del_weak_ref(void);
 
-INTERNAL_ABI void launchd_runtime_init(void);
-INTERNAL_ABI void launchd_runtime_init2(void);
-INTERNAL_ABI void launchd_runtime(void) __attribute__((noreturn));
+void launchd_runtime_init(void);
+void launchd_runtime_init2(void);
+void launchd_runtime(void) __attribute__((noreturn));
 
-INTERNAL_ABI void launchd_log_vm_stats(void);
+void launchd_log_vm_stats(void);
 
-INTERNAL_ABI int runtime_close(int fd);
-INTERNAL_ABI int runtime_fsync(int fd);
+int runtime_close(int fd);
+int runtime_fsync(int fd);
 
 #define RUNTIME_ADVISABLE_IDLE_TIMEOUT 30
 
-INTERNAL_ABI void runtime_set_timeout(timeout_callback to_cb, unsigned int sec);
-INTERNAL_ABI kern_return_t runtime_add_mport(mach_port_t name, mig_callback demux, mach_msg_size_t msg_size);
-INTERNAL_ABI kern_return_t runtime_remove_mport(mach_port_t name);
-INTERNAL_ABI struct ldcred *runtime_get_caller_creds(void);
+void runtime_set_timeout(timeout_callback to_cb, unsigned int sec);
+kern_return_t runtime_add_mport(mach_port_t name, mig_callback demux, mach_msg_size_t msg_size);
+kern_return_t runtime_remove_mport(mach_port_t name);
+struct ldcred *runtime_get_caller_creds(void);
 
-INTERNAL_ABI const char *signal_to_C_name(unsigned int sig);
-INTERNAL_ABI const char *reboot_flags_to_C_names(unsigned int flags);
-INTERNAL_ABI const char *proc_flags_to_C_names(unsigned int flags);
+const char *signal_to_C_name(unsigned int sig);
+const char *reboot_flags_to_C_names(unsigned int flags);
+const char *proc_flags_to_C_names(unsigned int flags);
 
-INTERNAL_ABI int kevent_bulk_mod(struct kevent *kev, size_t kev_cnt);
-INTERNAL_ABI int kevent_mod(uintptr_t ident, short filter, u_short flags, u_int fflags, intptr_t data, void *udata);
+int kevent_bulk_mod(struct kevent *kev, size_t kev_cnt);
+int kevent_mod(uintptr_t ident, short filter, u_short flags, u_int fflags, intptr_t data, void *udata);
 
-INTERNAL_ABI pid_t runtime_fork(mach_port_t bsport);
+pid_t runtime_fork(mach_port_t bsport);
 
-INTERNAL_ABI kern_return_t runtime_log_forward(uid_t forward_uid, gid_t forward_gid, vm_offset_t inval, mach_msg_type_number_t invalCnt);
-INTERNAL_ABI kern_return_t runtime_log_drain(mach_port_t srp, vm_offset_t *outval, mach_msg_type_number_t *outvalCnt);
+mach_msg_return_t launchd_exc_runtime_once(mach_port_t port, mach_msg_size_t rcv_msg_size, mach_msg_size_t send_msg_size, mig_reply_error_t *bufRequest, mig_reply_error_t *bufReply, mach_msg_timeout_t to);
 
+kern_return_t runtime_log_forward(uid_t forward_uid, gid_t forward_gid, vm_offset_t inval, mach_msg_type_number_t invalCnt);
+kern_return_t runtime_log_drain(mach_port_t srp, vm_offset_t *outval, mach_msg_type_number_t *outvalCnt);
+
 #define LOG_APPLEONLY 0x4141504c /* AAPL in hex */
 #define LOG_CONSOLE (1 << 31)
 
@@ -158,25 +153,26 @@
 	pid_t about_pid;
 };
 
-INTERNAL_ABI int runtime_setlogmask(int maskpri);
-INTERNAL_ABI void runtime_closelog(void);
-INTERNAL_ABI void runtime_syslog(int pri, const char *message, ...) __attribute__((format(printf, 2, 3)));
-INTERNAL_ABI void runtime_vsyslog(struct runtime_syslog_attr *attr, bool log_to_console, const char *message, va_list args) __attribute__((format(printf, 3, 0)));
-INTERNAL_ABI void runtime_log_push(void);
+int runtime_setlogmask(int maskpri);
+void runtime_closelog(void);
+void runtime_syslog(int pri, const char *message, ...) __attribute__((format(printf, 2, 3)));
+void runtime_vsyslog(struct runtime_syslog_attr *attr, bool log_to_console, const char *message, va_list args) __attribute__((format(printf, 3, 0)));
+void runtime_log_push(void);
 
-INTERNAL_ABI int64_t runtime_get_wall_time(void) __attribute__((warn_unused_result));
-INTERNAL_ABI uint64_t runtime_get_opaque_time(void) __attribute__((warn_unused_result));
-INTERNAL_ABI uint64_t runtime_get_opaque_time_of_event(void) __attribute__((pure, warn_unused_result));
-INTERNAL_ABI uint64_t runtime_opaque_time_to_nano(uint64_t o) __attribute__((const, warn_unused_result));
-INTERNAL_ABI uint64_t runtime_get_nanoseconds_since(uint64_t o) __attribute__((pure, warn_unused_result));
+int64_t runtime_get_wall_time(void) __attribute__((warn_unused_result));
+uint64_t runtime_get_opaque_time(void) __attribute__((warn_unused_result));
+uint64_t runtime_get_opaque_time_of_event(void) __attribute__((pure, warn_unused_result));
+uint64_t runtime_opaque_time_to_nano(uint64_t o) __attribute__((const, warn_unused_result));
+uint64_t runtime_get_nanoseconds_since(uint64_t o) __attribute__((pure, warn_unused_result));
 
-INTERNAL_ABI kern_return_t launchd_set_bport(mach_port_t name);
-INTERNAL_ABI kern_return_t launchd_get_bport(mach_port_t *name);
-INTERNAL_ABI kern_return_t launchd_mport_notify_req(mach_port_t name, mach_msg_id_t which);
-INTERNAL_ABI kern_return_t launchd_mport_notify_cancel(mach_port_t name, mach_msg_id_t which);
-INTERNAL_ABI kern_return_t launchd_mport_create_recv(mach_port_t *name);
-INTERNAL_ABI kern_return_t launchd_mport_deallocate(mach_port_t name);
-INTERNAL_ABI kern_return_t launchd_mport_make_send(mach_port_t name);
-INTERNAL_ABI kern_return_t launchd_mport_close_recv(mach_port_t name);
+kern_return_t launchd_set_bport(mach_port_t name);
+kern_return_t launchd_get_bport(mach_port_t *name);
+kern_return_t launchd_mport_notify_req(mach_port_t name, mach_msg_id_t which);
+kern_return_t launchd_mport_notify_cancel(mach_port_t name, mach_msg_id_t which);
+kern_return_t launchd_mport_create_recv(mach_port_t *name);
+kern_return_t launchd_mport_deallocate(mach_port_t name);
+kern_return_t launchd_mport_make_send(mach_port_t name);
+kern_return_t launchd_mport_copy_send(mach_port_t name);
+kern_return_t launchd_mport_close_recv(mach_port_t name);
 
 #endif

Modified: trunk/launchd/src/launchd_unix_ipc.c
===================================================================
--- trunk/launchd/src/launchd_unix_ipc.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_unix_ipc.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -62,7 +62,7 @@
 static void ipc_readmsg2(launch_data_t data, const char *cmd, void *context);
 static void ipc_readmsg(launch_data_t msg, void *context);
 
-INTERNAL_ABI static void ipc_listen_callback(void *obj __attribute__((unused)), struct kevent *kev);
+static void ipc_listen_callback(void *obj __attribute__((unused)), struct kevent *kev);
 
 static kq_callback kqipc_listen_callback = ipc_listen_callback;
 
@@ -87,7 +87,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 ipc_server_init(void)
 {
 	struct sockaddr_un sun;
@@ -177,7 +177,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 ipc_open(int fd, job_t j)
 {
 	struct conncb *c = calloc(1, sizeof(struct conncb));
@@ -191,7 +191,7 @@
 	kevent_mod(fd, EVFILT_READ, EV_ADD, 0, 0, &c->kqconn_callback);
 }
 
-INTERNAL_ABI void
+void
 ipc_listen_callback(void *obj __attribute__((unused)), struct kevent *kev)
 {
 	struct sockaddr_un sun;
@@ -205,7 +205,7 @@
 	ipc_open(cfd, NULL);
 }
 
-INTERNAL_ABI void
+void
 ipc_callback(void *obj, struct kevent *kev)
 {
 	struct conncb *c = obj;
@@ -239,7 +239,7 @@
 	setenv(key, launch_data_get_string(obj), 1);
 }
 
-INTERNAL_ABI void
+void
 ipc_close_all_with_job(job_t j)
 {
 	struct conncb *ci, *cin;
@@ -251,7 +251,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 ipc_close_fds(launch_data_t o)
 {
 	size_t i;
@@ -274,7 +274,7 @@
 	}
 }
 
-INTERNAL_ABI void
+void
 ipc_revoke_fds(launch_data_t o)
 {
 	size_t i;
@@ -425,7 +425,7 @@
 	return runtime_close(fd);
 }
 
-INTERNAL_ABI void
+void
 ipc_close(struct conncb *c)
 {
 	LIST_REMOVE(c, sle);

Modified: trunk/launchd/src/launchd_unix_ipc.h
===================================================================
--- trunk/launchd/src/launchd_unix_ipc.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/launchd_unix_ipc.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -35,12 +35,12 @@
 
 extern char *sockpath;
 
-INTERNAL_ABI void ipc_open(int fd, job_t j);
-INTERNAL_ABI void ipc_close_all_with_job(job_t j);
-INTERNAL_ABI void ipc_close(struct conncb *c);
-INTERNAL_ABI void ipc_callback(void *, struct kevent *);
-INTERNAL_ABI void ipc_revoke_fds(launch_data_t o);
-INTERNAL_ABI void ipc_close_fds(launch_data_t o);
-INTERNAL_ABI void ipc_server_init(void);
+void ipc_open(int fd, job_t j);
+void ipc_close_all_with_job(job_t j);
+void ipc_close(struct conncb *c);
+void ipc_callback(void *, struct kevent *);
+void ipc_revoke_fds(launch_data_t o);
+void ipc_close_fds(launch_data_t o);
+void ipc_server_init(void);
 
 #endif

Modified: trunk/launchd/src/libbootstrap.c
===================================================================
--- trunk/launchd/src/libbootstrap.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/libbootstrap.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -82,12 +82,6 @@
 }
 
 kern_return_t
-bootstrap_set_policy(mach_port_t bp, pid_t target_pid, uint64_t flags, const char *target_service)
-{
-	return vproc_mig_set_service_policy(bp, target_pid, flags, target_service ? (char *)target_service : "");
-}
-
-kern_return_t
 bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp)
 {
 	return bootstrap_register2(bp, service_name, sp, 0);
@@ -154,12 +148,22 @@
 		return kr;
 	}
 
-	kr = vproc_mig_look_up2(puc, (char *)service_name, sp, &au_tok, 0, 0);
-	mach_port_deallocate(mach_task_self(), puc);
+	if( !service_name ) {
+		*sp = puc;
+	} else {
+		kr = vproc_mig_look_up2(puc, (char *)service_name, sp, &au_tok, 0, 0);
+		mach_port_deallocate(mach_task_self(), puc);
+	}
 
 	return kr;
 }
 
+kern_return_t
+bootstrap_lookup_children(mach_port_t bp, mach_port_array_t *children, name_array_t *names, bootstrap_property_array_t *properties, mach_msg_type_number_t *n_children)
+{
+	mach_msg_type_number_t junk = 0;
+	return vproc_mig_lookup_children(bp, children, &junk, names, n_children, properties, &junk);
+}
 
 kern_return_t
 bootstrap_look_up(mach_port_t bp, const name_t service_name, mach_port_t *sp)
@@ -211,16 +215,13 @@
 	mach_port_deallocate(mach_task_self(), puc);
 
 out:
-	if (!per_pid_lookup && kr == 0 && prev_sp == 0
-			&& mach_port_mod_refs(mach_task_self(), *sp, MACH_PORT_RIGHT_SEND, 1) == 0) {
+	if (!per_pid_lookup && kr == 0 && prev_sp == 0 && mach_port_mod_refs(mach_task_self(), *sp, MACH_PORT_RIGHT_SEND, 1) == 0) {
 		/* We're going to hold on to a send right as a MRU cache */
 		prev_bp = bp;
 		prev_sp = *sp;
 		strlcpy(prev_name, service_name, sizeof(name_t));
 	}
 
-	pthread_mutex_unlock(&bslu2_lock);
-
 	if ((kr == 0) && (flags & BOOTSTRAP_PRIVILEGED_SERVER) && !privileged_server_okay) {
 		uid_t server_euid;
 
@@ -243,7 +244,9 @@
 		}
 
 	}
-
+	/* If performance becomes a problem, we should restructure this. */
+	pthread_mutex_unlock(&bslu2_lock);
+	
 	return kr;
 }
 

Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/libvproc.c	2008-11-22 22:31:20 UTC (rev 23754)
@@ -157,6 +157,22 @@
 	return likely(vproc_shmem) ? vproc_shmem->vp_shmem_standby_timeout : 0;
 }
 
+bool
+_vproc_pid_is_managed(pid_t p)
+{
+	boolean_t result = false;
+	vproc_mig_pid_is_managed(bootstrap_port, p, &result);
+	
+	return result;
+}
+
+kern_return_t
+_vproc_transaction_count_for_pid(pid_t p, int32_t *count, bool *condemned)
+{
+	boolean_t _condemned = false;
+	return vproc_mig_transaction_count_for_pid(bootstrap_port, p, count, (boolean_t *)condemned ? : &_condemned);
+}
+
 void
 _vproc_transaction_try_exit(int status)
 {
@@ -356,25 +372,21 @@
 		return (vproc_err_t)_vprocmgr_move_subset_to_user;
 	}
 
-	if (is_bkgd || target_user) {
-		mach_port_t puc = 0, rootbs = get_root_bootstrap_port();
-
-		if (vproc_mig_lookup_per_user_context(rootbs, target_user, &puc) != 0) {
-			return (vproc_err_t)_vprocmgr_move_subset_to_user;
-		}
-
-		if (is_bkgd) {
-			task_set_bootstrap_port(mach_task_self(), puc);
-			mach_port_deallocate(mach_task_self(), bootstrap_port);
-			bootstrap_port = puc;
-		} else {
-			kr = vproc_mig_move_subset(puc, bootstrap_port, (char *)session_type);
-			mach_port_deallocate(mach_task_self(), puc);
-		}
+	mach_port_t puc = 0, rootbs = get_root_bootstrap_port();
+	
+	if (vproc_mig_lookup_per_user_context(rootbs, target_user, &puc) != 0) {
+		return (vproc_err_t)_vprocmgr_move_subset_to_user;
+	}
+	
+	if( is_bkgd ) {		
+		task_set_bootstrap_port(mach_task_self(), puc);
+		mach_port_deallocate(mach_task_self(), bootstrap_port);
+		bootstrap_port = puc;
 	} else {
-		kr = _vprocmgr_init(session_type) ? 1 : 0;
+		kr = vproc_mig_move_subset(puc, bootstrap_port, (char *)session_type);
+		mach_port_deallocate(mach_task_self(), puc);
 	}
-
+	
 	cached_pid = -1;
 
 	if (kr) {
@@ -402,6 +414,20 @@
 	return !issetugid() ? _vproc_post_fork_ping() : NULL;
 }
 
+vproc_err_t 
+_vprocmgr_detach_from_console(uint32_t flags __attribute__((unused)))
+{
+	mach_port_t new_bsport = MACH_PORT_NULL;
+	if( vproc_mig_detach_from_console(bootstrap_port, &new_bsport) != KERN_SUCCESS ) {
+		return (vproc_err_t)_vprocmgr_detach_from_console;
+	}
+	
+	task_set_bootstrap_port(mach_task_self(), new_bsport);
+	mach_port_deallocate(mach_task_self(), bootstrap_port);
+	bootstrap_port = new_bsport;
+	
+	return !issetugid() ? _vproc_post_fork_ping() : NULL;
+}
 
 pid_t
 _spawn_via_launchd(const char *label, const char *const *argv, const struct spawn_via_launchd_attr *spawn_attrs, int struct_version)
@@ -822,12 +848,13 @@
 }
 
 vproc_err_t
-_vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name, mach_port_t *out_obsrvr_port)
+_vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name, mach_port_t *out_obsrvr_port, vproc_flags_t flags)
 {
 	mach_port_t junk = MACH_PORT_NULL;
 	mach_port_t junk2 = MACH_PORT_NULL;
 	
-	if( vproc_mig_kickstart(bootstrap_port, (char *)label, out_pid, out_port_name ?: &junk, out_obsrvr_port ?: &junk2) == 0 ) {
+	kern_return_t kr = vproc_mig_kickstart(bootstrap_port, (char *)label, out_pid, out_port_name ?: &junk, out_obsrvr_port ?: &junk2, flags);
+	if( kr == KERN_SUCCESS ) {
 		if( !out_port_name ) {
 			mach_port_mod_refs(mach_task_self(), junk, MACH_PORT_RIGHT_SEND, -1);
 		}

Modified: trunk/launchd/src/protocol_job_reply.defs
===================================================================
--- trunk/launchd/src/protocol_job_reply.defs	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/protocol_job_reply.defs	2008-11-22 22:31:20 UTC (rev 23754)
@@ -66,8 +66,6 @@
 
 skip; /* swap_integer */
 
-skip; /* set_service_policy */
-
 skip; /* log */
 
 skip; /* lookup_per_user_context */
@@ -79,4 +77,4 @@
 simpleroutine job_mig_log_drain_reply(
 		__r_port	: mach_port_move_send_once_t;
 		__result	: kern_return_t, RetCode;
-		__outval        : pointer_t);
+		__outval	: pointer_t);

Modified: trunk/launchd/src/protocol_vproc.defs
===================================================================
--- trunk/launchd/src/protocol_vproc.defs	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/protocol_vproc.defs	2008-11-22 22:31:20 UTC (rev 23754)
@@ -35,7 +35,6 @@
 type mach_port_move_send_array_t = array[] of mach_port_move_send_t
 		ctype: mach_port_array_t;
 
-
 userprefix vproc_mig_;
 serverprefix job_mig_;
 
@@ -132,12 +131,6 @@
 				__inval				: int64_t;
 out				__outval			: int64_t);
 
-routine set_service_policy(
-				__bs_port			: job_t;
-				__target_pid		: pid_t;
-				__flags				: uint64_t;
-				__service			: name_t);
-
 routine log(
 				__bs_port			: job_t;
 				__pri				: integer_t;
@@ -175,9 +168,32 @@
 				__label				: name_t;
 out				__pid				: pid_t;
 out				__name_port			: mach_port_t;
-out				__obsrvr_port		: mach_port_make_send_t);
+out				__obsrvr_port		: mach_port_make_send_t;
+				__flags				: natural_t);
 
 routine embedded_wait(
 				__bs_port			: job_t;
 				__label				: name_t;
 out				__waitval			: integer_t);
+
+routine lookup_children(
+				__bs_port			: job_t;
+out 			__child_ports		: mach_port_move_send_array_t, dealloc;
+out				__child_names		: name_array_t, dealloc;
+out				__child_properties	: bootstrap_property_array_t, dealloc);
+
+routine detach_from_console(
+				__bs_port			: job_t;
+out				__new_bs_port		: mach_port_make_send_t);
+
+routine transaction_count_for_pid(
+				__bs_port			: job_t;
+				__pid				: pid_t;
+out				__cnt				: integer_t;
+out				__condemend			: boolean_t);
+				
+routine pid_is_managed(
+				__bs_port			: job_t;
+				__pid				: pid_t;
+out				__managed			: boolean_t);
+

Modified: trunk/launchd/src/vproc_priv.h
===================================================================
--- trunk/launchd/src/vproc_priv.h	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd/src/vproc_priv.h	2008-11-22 22:31:20 UTC (rev 23754)
@@ -61,6 +61,10 @@
 	VPROC_GSK_WEIRD_BOOTSTRAP,
 } vproc_gsk_t;
 
+typedef unsigned int vproc_flags_t;
+/* For _vproc_kickstart_by_label() -- instructs launchd to kickstart the job to stall before exec(2). */
+#define VPROCFLAG_STALL_JOB_EXEC	1 << 1
+
 vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval);
 vproc_err_t vproc_swap_complex(vproc_t vp, vproc_gsk_t key, launch_data_t inval, launch_data_t *outval);
 
@@ -72,7 +76,7 @@
 vproc_err_t _vprocmgr_log_drain(vproc_t vp, pthread_mutex_t *optional_mutex_around_callback, _vprocmgr_log_drain_callback_t func);
 
 vproc_err_t _vproc_send_signal_by_label(const char *label, int sig);
-vproc_err_t _vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name, mach_port_t *out_obsrvr_port);
+vproc_err_t _vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name, mach_port_t *out_obsrvr_port, vproc_flags_t flags);
 vproc_err_t _vproc_wait_by_label(const char *label, int *out_wstatus);
 
 void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
@@ -86,16 +90,19 @@
 #define VPROCMGR_SESSION_SYSTEM			"System"
 
 vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, const char *session_type);
+vproc_err_t _vprocmgr_detach_from_console(vproc_flags_t flags);
 
-void _vproc_standby_begin(void) 				__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_standby_end(void)					__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_standby_count(void)				__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_standby_timeout(void)				__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_standby_begin(void)																__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_standby_end(void)																__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_standby_count(void)															__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_standby_timeout(void)															__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
 
-void _vproc_transaction_try_exit(int status)	__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_transaction_begin(void)				__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_transaction_end(void)				__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_transaction_count(void)			__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+kern_return_t _vproc_transaction_count_for_pid(pid_t p, int32_t *count, bool *condemned)	__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+bool _vproc_pid_is_managed(pid_t p)															__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_transaction_try_exit(int status)												__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_transaction_begin(void)															__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_transaction_end(void)															__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_transaction_count(void)														__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
 
 #pragma GCC visibility pop
 

Modified: trunk/launchd.xcodeproj/project.pbxproj
===================================================================
--- trunk/launchd.xcodeproj/project.pbxproj	2008-11-10 21:30:04 UTC (rev 23753)
+++ trunk/launchd.xcodeproj/project.pbxproj	2008-11-22 22:31:20 UTC (rev 23754)
@@ -52,7 +52,7 @@
 /* Begin PBXBuildFile section */
 		4B9EDCA20EAFC77E00A78496 /* DiskArbitration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9EDCA10EAFC77E00A78496 /* DiskArbitration.framework */; };
 		721FBEBC0EA7AE2F0057462B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 721FBEBB0EA7AE2F0057462B /* Security.framework */; };
-		726055EC0EA7EC2400D65FE7 /* exc.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC36291F0E9349410054F1A3 /* exc.defs */; settings = {ATTRIBUTES = (Server, ); }; };
+		726055EC0EA7EC2400D65FE7 /* mach_exc.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC36291F0E9349410054F1A3 /* mach_exc.defs */; settings = {ATTRIBUTES = (Server, ); }; };
 		726056090EA7FCF200D65FE7 /* launchd_ktrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */; };
 		72FDB15F0EA7D7B200B2AC84 /* launchd_ktrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */; };
 		72FDB1C00EA7E21C00B2AC84 /* protocol_job_forward.defs in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB1BF0EA7E21C00B2AC84 /* protocol_job_forward.defs */; };
@@ -298,7 +298,7 @@
 		FC36283E0E93463C0054F1A3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
 		FC36290C0E93475F0054F1A3 /* notify.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = notify.defs; path = /usr/include/mach/notify.defs; sourceTree = "<absolute>"; };
 		FC3629160E9348390054F1A3 /* protocol_job_reply.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = protocol_job_reply.defs; path = launchd/src/protocol_job_reply.defs; sourceTree = "<group>"; };
-		FC36291F0E9349410054F1A3 /* exc.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = exc.defs; path = /usr/include/mach/exc.defs; sourceTree = "<absolute>"; };
+		FC36291F0E9349410054F1A3 /* mach_exc.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = mach_exc.defs; path = /usr/include/mach/mach_exc.defs; sourceTree = "<absolute>"; };
 		FC36292C0E934AA40054F1A3 /* libbsm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbsm.dylib; path = /usr/lib/libbsm.dylib; sourceTree = "<absolute>"; };
 		FC59A0540E8C884700D41150 /* launchd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = launchd; sourceTree = BUILT_PRODUCTS_DIR; };
 		FC59A0600E8C885100D41150 /* liblaunch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblaunch.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -419,7 +419,7 @@
 				FC3629160E9348390054F1A3 /* protocol_job_reply.defs */,
 				FC3627DF0E9344BF0054F1A3 /* protocol_vproc.defs */,
 				FC59A0BD0E8C8A2A00D41150 /* launchd_internal.defs */,
-				FC36291F0E9349410054F1A3 /* exc.defs */,
+				FC36291F0E9349410054F1A3 /* mach_exc.defs */,
 				FC36290C0E93475F0054F1A3 /* notify.defs */,
 			);
 			name = MIG;
@@ -837,7 +837,7 @@
 				FC59A0BF0E8C8A2A00D41150 /* launchd_internal.defs in Sources */,
 				FC3627E10E9344BF0054F1A3 /* protocol_vproc.defs in Sources */,
 				FC3629170E9348390054F1A3 /* protocol_job_reply.defs in Sources */,
-				726055EC0EA7EC2400D65FE7 /* exc.defs in Sources */,
+				726055EC0EA7EC2400D65FE7 /* mach_exc.defs in Sources */,
 				FC36290D0E93475F0054F1A3 /* notify.defs in Sources */,
 				FC59A0C50E8C8A4700D41150 /* launchd.c in Sources */,
 				FC59A0BA0E8C8A1F00D41150 /* launchd_runtime.c in Sources */,
@@ -998,6 +998,7 @@
 				INSTALL_PATH = /sbin;
 				PREBINDING = NO;
 				PRODUCT_NAME = launchd;
+				STRIP_STYLE = debugging;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -1014,6 +1015,7 @@
 				COPY_PHASE_STRIP = YES;
 				CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)";
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				INSTALLHDRS_SCRIPT_PHASE = YES;
 				INSTALL_PATH = /usr/local/lib/system;
 				OTHER_CFLAGS = (
 					"-D__MigTypeCheck=1",
@@ -1039,6 +1041,7 @@
 				INSTALL_PATH = /bin;
 				PREBINDING = NO;
 				PRODUCT_NAME = launchctl;
+				STRIP_STYLE = debugging;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -1075,6 +1078,7 @@
 				INSTALL_PATH = /sbin;
 				PREBINDING = NO;
 				PRODUCT_NAME = SystemStarter;
+				STRIP_STYLE = debugging;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -1089,6 +1093,7 @@
 				INSTALL_PATH = /usr/libexec;
 				PREBINDING = NO;
 				PRODUCT_NAME = launchproxy;
+				STRIP_STYLE = debugging;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -1103,6 +1108,7 @@
 				INSTALL_PATH = /bin;
 				PREBINDING = NO;
 				PRODUCT_NAME = wait4path;
+				STRIP_STYLE = debugging;
 				ZERO_LINK = NO;
 			};
 			name = Release;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/launchd-changes/attachments/20081122/655dcf1a/attachment-0001.html>


More information about the launchd-changes mailing list