summaryrefslogtreecommitdiff
path: root/exec/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'exec/main.c')
-rw-r--r--exec/main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/exec/main.c b/exec/main.c
index 784000b8..c86c000f 100644
--- a/exec/main.c
+++ b/exec/main.c
@@ -331,8 +331,15 @@ S_exec_init (struct trivfs_protid *protid,
proc_register_version (procserver, host_priv, "exec", "", HURD_VERSION);
- err = proc_getmsgport (procserver, HURD_PID_STARTUP, &startup);
- assert_perror (err);
+ startup = file_name_lookup (_SERVERS_STARTUP, 0, 0);
+ if (startup == MACH_PORT_NULL)
+ {
+ error (0, errno, "%s", _SERVERS_STARTUP);
+
+ /* Fall back to abusing the message port lookup. */
+ err = proc_getmsgport (procserver, HURD_PID_STARTUP, &startup);
+ assert_perror (err);
+ }
mach_port_deallocate (mach_task_self (), procserver);
/* Call startup_essential task last; init assumes we are ready to