Tue Dec 13 23:28:08 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (OBJS): Add unzip.o util.o inflate.o.
	(LCLHDRS): Add gzip.h crypt.h tailor.h.
	(unzip.o util.o inflate.o): Depend on those.
	(CFLAGS): Use +=.
	* inflate.c, unzip.c, util.c, tailor.h, gzip.h, crypt.h: New files.

Sun Dec 11 19:49:01 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (struct execdata): New members `headbuf', `file_data',
        `optimal_block'.
	(load_section): Copy data from U->file_data if that is nonnull.
	Use new subfunction `write_to_task' that handles non-page aligned
        sections.
	(input_room): Fix EOF check.
	Use io_read if no memory object.
	(prepare): New function, broken out of check.
	Initialize E->file_data and E->optimal_block.  Set
	E->stream.__seen bit.
	(check): No longer take FILE arg.
	Use E->file_data if nonnull; else read from stream if no memory object.
	(finish_mapping): Reset members after deallocating resources.
	(finish): Likewise.  Call fclose.  Don't deallocate E->header if
	it points to &E->headbuf or E->file_data.
	(check_gzip): New function, implements executing gzip'd binaries.
	(do_exec): Call prepare before check.
	Call check_gzip if file format unrecognized.

Wed Nov  9 01:40:28 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (set_active_trans): Don't deallocate EXECNODE here to
	work around a ufs bug.

	* exec.c: Include <hurd/paths.h> and <fcntl.h>.
	(set_active_trans): New function.
	(S_exec_init): Call set_active_trans.

Wed Aug 31 11:16:04 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (load_section): Pass address of stream in call to fread.
	(input_room): Cast second arg to vm_deallocate.  Dereference F
	in setting __error member.
	(close_exec_stream): Provide all three args to vm_deallocate
	and cast the second one properly.

Wed Aug 31 04:32:26 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (do_exec): Do check before task_suspend.
	#if 0'd out: If check gets ENOEXEC, call check_hashbang.
	(struct execdata): Move member `stream' outside of [BFD].
	(load_section): Use fread instead of hand mapping and copying
	unconditionally (was [BFD]); old code left #if'd out.
	(close_exec_stream): Renamed from close_stdio_bfd; moved out of [BFD].
	(input_room): Define unconditionally, not [BFD].
	(check): Set up E->stream unconditionally.

Tue Aug 30 11:58:27 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (S_fsys_syncfs, S_fsys_mod_readonly): New stubs.

	* exec.c (set_init_port): Use new authentication protocol.
	
	* exec.c (S_exec_exec): Call hurd_file_name_lookup instead
	of hurd_path_lookup.

	* exec.c (S_fsys_getroot): Return FS_RETRY_NORMAL instead
	of FS_RETRY_NONE.

	* exec.c (procserver): New global variable.
	(S_exec_init): Set procserver.
	(do_exec): Use `procserver' instead of USEPORT macro.
	(S_exec_init): Likewise.

Mon Aug 29 13:08:44 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (do_exec): Enable and fix up code for doing proc_reassign
	in the EXEC_NEWTASK case.
	(do_exec): If we don't provide the proc port, and this is a
	newtask exec, then use the proc port to fetch a new one 
	corresponding to the new task.

Wed Aug 17 14:59:58 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (S_exec_exec): Bother to pass flags to do_exec.

	* exec.c (essentialstartupport, essentialhostport): Deleted vars.
	(S_exec_init): Do startup_essential_task here like before, but
	make sure we do it last.
	(S_exec_setexecdata): Don't do startup_essential_task here.

Tue Aug 16 10:02:50 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (set_init_port): Don't assume that MACH_PORT_NULL == 0.
	(do_exec): Likewise.

Mon Aug 15 21:23:13 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c: Include <unistd.h> for getpid decl.
	(set_init_port): Use pid_t for PID.
	(S_exec_init): Pass poly arg to proc_execdata_notify.

Mon Aug 15 15:24:45 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* exec.c (do_exec): Finish implementing EXEC_SECURE flag;
	implement EXEC_DEFAULTS flag.
	(S_exec_init): Delay startup_essential_task until after
	we've received the first essential ports from the proc server.
	(essentialstartupport essentialhostport): New global vars.

Fri Jul 22 10:21:30 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile: Rewritten in accord with new scheme.
	* exec.c: Include "exec_S.h" instead of "exec_server.h".
	Include "notify_S.h".

Tue Jul 19 20:51:58 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makefile (exec_server.h execServer.c, fsys_S.h fsysServer.c):
	Find .defs file in ../hurd, not $(includedir).

Tue Jul 19 12:42:32 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* exec.c (S_fsys_getroot): New arg `dotdot'; don't do anything
	with it.
	(S_fsys_startup): Removed dotdot args.
	(main): Deleted var `dotdot'; don't expect it from fsys_startup.

	* Makefile (exec): Don't use variable $(link) anymore.

Tue Jul  5 14:20:15 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (SRCS, TAGSHDRS): New variables.

Fri Jun 24 14:42:59 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* exec.c (load_section) [AOUT, mapstart > addr]: Dereference 
	U->header in use of N_MAGIC.

Fri Jun 24 02:40:32 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (load_section): Store protection of section in new local
	VM_PROT.  If vm_write of overlap page gets KERN_PROTECTION_FAILURE,
	change protection of overlap page long enough to write it.
	[AOUT]: Return ENOEXEC if there is overlap in NMAGIC or ZMAGIC.

Thu Jun 16 16:15:17 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* exec.c (S_fsys_getroot): Implement new fsys_getroot interface.

Mon Jun 13 04:06:24 1994  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* exec.c (check): Store FILE in E->file.

Tue May 31 17:20:24 1994  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* a.out.h (struct exec): Type removed.
	(OMAGIC, NMAGIC, ZMAGIC, N_MAGIC, N_MACHTYPE, N_BADMAG): Macros
	removed.  Just #include "a.out.gnu.h" to get all these defined.
	(N_TXTLEN, N_TXTOFF): Use N_MAGIC instead of a_magic member.

	* Makefile (DIST_FILES): Add a.out.gnu.h.
	(exec.o, hostarch.o): Depend on a.out.gnu.h.

Fri May 27 01:40:04 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (servercopy): New function to check the servercopy flag
	and possibly vm_allocate a copy of argument data.
	(do_exec): Take new args DTABLE_COPY, PORTARRAY_COPY,
	INTARRAY_COPY.  Use servercopy for ARGV, ENVP, DTABLE, PORTARRAY,
	and INTARRAY.
	(S_exec_exec): Take those new args and pass them to do_exec.
	(S_exec_setexecdata): Take new args PORTS_COPY and INTS_COPY.
	Use servercopy for PORTS and INTS.
	(S_exec_startup): Never copy from info in *BOOT, always just set
	the argument pointers to the pointers in *BOOT.  MiG will copy and
	deallocate the space as necessary.

	* exec.c (check): Lock and unlock E->cntl->lock properly.
	(finish_mapping): New function, broken out of finish.
	(postload_section): New function, broken out of load_section.
	(postload): New function, like load but calls postload_section.
	(do_exec): Call finish_mapping and postload between load and finish.

Tue May 24 19:49:16 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (S_exec_exec): Use strsep instead of strtok.
	(main): Keep looping after error from mach_msg_server.

Tue May 24 14:22:16 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* exec.c (load_section): Cast arg to vm_deallocate properly.

Tue May 24 01:05:08 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (struct bootinfo): Remove members argv_vmalloc, envp_vmalloc.
	(do_exec): Don't set BOOT->argv_vmalloc or BOOT->envp_vmalloc.  If
	ARGV_COPY is set, vm_allocate space for ARGV; likewise for
	ENVP_COPY and ENVP.
	(S_exec_startup): Don't test BOOT->argv_vmalloc and
	BOOT->envp_vmalloc; BOOT->argv and BOOT->envp are always vm_allocate'd.
	(do_mach_notify_no_senders): Likewise.
	(load_section): Handle non-bss sections that are not page aligned.

Mon May 23 22:01:11 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (S_exec_exec): Reverse args to memmem.
	(do_exec): Don't vm_deallocate DEALLOCNAMES or DESTROYNAMES; mig
	deallocates the space for us.

Tue May 17 13:33:41 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* exec.c (S_exec_init): Don't deallocate host_priv until after
	we've used it in the call to startup_essential_task.

Thu May 12 03:53:57 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (S_fsys_init): Add reply port args.

Wed May 11 16:03:07 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* exec.c (S_exec_init): Spelling fix.

	* Makefile (exec.o): Add dependencies on fsys_S.h and notify_S.h.
	(fsysServer.c, notifyServer.c): Notice that these rules build
	fsys_S.h and notify_S.h respectively.

Mon May  9 17:06:52 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* exec.c (exec_version, save_argv): New variable.
	(main): Set save_argv.
	(S_exec_init): Give the real argv to proc.
	Call proc_register_version if we can.
	(S_exec_init): Call startup_essential_task if we can.

Thu May  5 06:25:02 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makefile: Change uses of $(headers) to $(includedir).

	* exec.c: Change return type of all RPC server functions to
	kern_return_t.  error_t is not compatible with the declarations in
	the mig-generated header files.

	* exec.c (do_exec): Set BOOT->stack_base and BOOT->stack_size with
	mach_setup_thread.
	(S_exec_exec): Pass msg type arg for FILE arg to exec_exec.

Thu Dec 23 18:05:04 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* exec.c (do_exec): For a newtask exec when EXEC_SECURE is not set
	and OLDTASK is not null, send the `task_create' RPC on OLDTASK
	rather than mach_task_self ().
