Thu Sep  5 11:11:19 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* main.c: Include <version.h>.
	(exec_version): Delete variable.
 	(S_exec_init): Pass empty string as release; HURD_VERSION
	as version.

Thu Aug 29 13:00:38 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* priv.h: Only include <bfd.h> if BFD.  Only declare
	host_bfd_arc_info, and bfd_host_bfd if BFD.  If not BFD, give
	typedef for asection. 
	* main.c: Only define host_bfd_arch_info, host_bfd, and
	bfd_mach_host_arch_mach if BFD.  
	(main): Only call bfd_mach_most_arch_mach if BFD.
	Call mach_host_elf_machine.
	* hostarch.c (bfd_mach_host_arch_mach): Only define if BFD.
	Delete arg E_MACHINE.  All callers changed.
	(mach_host_elf_machine): New function.

Sun Jul  7 21:13:22 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* exec.c (S_exec_exec): Don't use unsafe MOVE_SEND in call to
 	interruptible exec_exec stub.

Mon Jul  1 16:08:03 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (DIST_FILES): Removed crash.c.
	* crash.c: Moved to ../trans.

Thu Jun 20 15:43:51 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (exec): Link against fshelp too now.

	* exec.c (do_exec): Call proc_setowner *after* possible
 	proc_reassign; otherwise it modifies the stub process's state and
 	not the real process's.

Wed Jun 19 14:08:15 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* exec.c (do_exec, S_exec_exec): Pass 0 for new LOOKUP arg to
	hurd_file_name_lookup.
	* hashexec.c (hurd_file_name_path_lookup): Declaration removed.
	(check_hashbang): Pass 0 for new LOOKUP arg to hurd_file_name_lookup.

Wed Jun 12 21:17:33 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* gzip.h (basename): Comment out declaration; it conflicts with
 	libc's.

	* exec.c (do_exec): If secure, set the owner with proc_setowner.

Fri May 10 16:47:11 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hashexec.c (search_path): Don't make PATH or PFXED_NAME const.

Fri May 10 09:20:26 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* exec.c (do_exec) [use1]: Use new auth_user_authenticate interface.
	* hashexec.c (check_hashbang) [userport/reauthenticate]: Likewise.
	
	* hashexec.c (check_hashbang) [setup_args/search_path]: Declare
	PATH to be `char const *'.

Tue May  7 16:24:52 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hashexec.c (check_hashbang): Use io_identity instead of io_stat to
 	compare files.

Mon May  6 14:26:41 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* main.c (exec_version): Upgrade to 0.0.

Fri May  3 14:16:17 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* exec.c (map): Use F->__offset and F->__target properly.

Thu May  2 10:21:37 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* exec.c (map): Fix fencepost error in check of current mapping
 	window.  Request round_page (LEN) bytes in io_read to avoid many small
 	reads.

	* exec.c (do_exec): Terminate OLDTASK if we get an error after killing
 	its threads and deallocating its address space.

Tue Apr 30 11:36:25 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* exec.c (check_gzip) [ziprderr]: Treat all read errors as
 	ENOEXEC.  First off, because that's what they are; also because
 	some callers of read_error don't set errno at all.

Mon Apr 29 15:11:55 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* exec.c (check_section): If the format makes no sense, return
	ENOEXEC, not EINVAL.
	(check_bfd): Likewise.
	(check_elf): Likewise.
	(check_elf_phdr): Likewise.
	(do_exec): Likewise.

	* exec.c (do_exec): Use correct args to ports_create_port.

Sat Apr 27 06:02:42 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* crash.c: Use ports_create_port instead of ports_allocate_port, and
 	notice the error.
	* exec.c: Likewise.

Tue Apr 23 18:53:54 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hashexec.c (check_hashbang: user_port): Use default root port when
 	secure.

Mon Apr 15 12:48:35 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (DIST_FILES): Add elfcore.c, crash.c, and exectrans.c.
	(SRCS): That's hashexec.c, not .o.

	* Makefile (exec-MIGSFLAGS): Look for execmutations.h in
 	$(srcdir).

Mon Apr  8 15:49:39 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* exec.c (prepare): If io_map returns EOPNOTSUPP, suppress the
	error, and still setup E's stream.
	(prepare_and_check): If prepare returns an error, do no more.

Thu Mar 28 14:06:07 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hashexec.c (check_hashbang): Pass open flags & mode args to
	hurd_file_name_path_lookup.

Mon Feb 26 16:33:22 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hashexec.c (check_hashbang): Correctly deal with interpreter
	lines having no argument.

Sat Jan 13 12:28:03 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hashexec.c (check_hashbang): Use hash_file_name_path_lookup()
	instead of doing the path search ourselves, and get rid of
	LOOKUP_CWDIR & associated logic.
	* exec.c (S_exec_exec): Use strdupa().  Also update use of
	hurd_file_name_lookup() [still probably not right though].

Thu Jan 11 15:36:18 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hashexec.c (check_hashbang): When using executable name found on
	the path, don't return alloca()ed memory from search_path(); use
	malloc() instead.
	Use envz_get() to search the environment.

	* exec.c (S_exec_exec): Use envz_get() to search the environment.

Thu Jan  4 11:30:15 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (safe_bzero): Rewritten using hurd_catch_signal.
	* hashexec.c (check_hashbang): Rearrange arg frobbing code
	somewhat to use hurd_catch_signal instead of old preemption interface.

Fri Dec 29 15:54:06 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* exec.c (do_exec): Be careful not to look at BOOT after we
 	release our reference on it.
	Correctly initialize BOOT->intarray in the case where NINTS <
 	INIT_INT_MAX but we don't alloc a new array.

Fri Dec 15 01:53:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (map): Rearrange code to fix some bugs and not remap
	unless necessary.
	(input_room): Simplify.
	(check_elf): Extract all information from file header before
	calling `map' for program headers.

Sat Nov 25 22:10:41 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* crash.c (S_msg_sig_post_untraced): Also let the debugger have
	the process back if it's posting the crashing signal.

Tue Nov 21 15:01:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (safe_bzero): New function, broken out of load_section.
	(load_section): Call it.

	* main.c (going_down): Variable removed.
	(deadboot): Don't test it.  Instead, use ports calls to check if
	there are no other live ports.
	(trivfs_goaway): Don't set it.

Wed Nov 15 19:40:44 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hashexec.c (user_port): Fixed port selection logic.
	(check_hashbang): Fixed PATH searching in script name guessing.

Mon Nov 13 15:11:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (S_exec_startup): Compatibility RPC removed.

	* exec.c (load_section): Catch faults while zeroing partial bss page.

Sun Nov  5 00:15:07 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (main): Add flags arg to trivfs_startup call.

Wed Oct 25 15:50:38 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (S_exec_startup_get_info): New function, modified from
	S_exec_startup.
	(S_exec_startup): Just call it.
	* main.c (exec_demuxer): Call exec_startup_server.

Tue Oct 24 19:21:20 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (OBJS): Add exec_startupServer.o.

	* priv.h (struct bootinfo): Use vm_size_t for phdr_size.

Wed Oct 18 18:36:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hashexec.c (check_hashbang: prepare_args): Enable and clean up
	code to guess the name	of the script before resorting to /dev/fd.

Wed Oct 18 03:05:05 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hashexec.c: New file.
	* exec.c (struct execdata): Moved to priv.h.
	(std_*, finish): Make global.
	(do_exec): Only reset CWDIR when null, even if secure.
	Actually call check_hashbang and return success if it does.
	Use new hurd_file_name_lookup protocol with private callbacks to open
	interpreter file on behalf of client.
	Remove `bootout' label; use `stdout' or `out' as appropriate instead.
	At `out' label always deref BOOT, which cleans it up iff necessary.
	(S_exec_exec): #if 0 out $EXECSERVERS processing for time being.
	* priv.h: Added some #includes.
	(struct execdata): Moved here from exec.c.
	(std_*): Declare these.
	(finish, check_hashbang): Declare them.
	* Makefile (SRCS, OBJS): Add hashexec.[co].
	(DIST_FILES): Remove it from here.

Wed Oct 11 01:45:32 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* main.c, priv.h, execmutations.h: New files.
	* exec.c: Server mechanics removed; now uses libtrivfs/libports.
	Main program split out into main.c.
	(std_lock): New variable (rwlock).
	(do_exec): Acquire reader lock to access std_ints and std_ports.
	(S_exec_setexecdata): Acquire writer lock to change them.
	* Makefile (OBJS): Add main.o; remove fsysServer.o, notifyServer.o.
	(LCLHDRS): Add priv.h and execmutations.h.
	(exec-MIGSFLAGS): New variable.
	(exec): Depend on livtrivfs, libthreads, libshouldbeinlibc.

Mon Oct  2 10:33:14 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* exec.c (do_exec): Doc fix.

Wed Sep 27 11:21:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (do_exec): Don't set NEWTASK's bootstrap port until after
	we have finished completely with OLDTASK.
	(do_mach_notify_no_senders): Remove bogus mod_refs call on
	receive_portset.

Wed Sep 20 19:57:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (struct bootinfo): New members `phdr_addr', `phdr_size',
	`user_entry'.
	(do_exec): Set them.  Code rearranged to construct bootinfo before
	looking up interpreter file, keep proper track of port rights and
	VM copied into bootinfo (there were leaks).

Sat Sep 16 13:15:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile: Remove vpath directive.

Fri Sep  8 17:50:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (OTHERLIBS, CPPFLAGS): Disable bfd by default.

Mon Aug 28 16:57:14 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (S_fsys_forward): New stub function.

Sun Jul 30 23:49:49 1995  Michael I. Bushnell, p/BSG  <mib@geech.gnu.ai.mit.edu>
	* Makefile (SRCS): Added unzip.c, util.c, and inflate.c.

Thu Jul  6 15:32:39 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* hostarch.c (bfd_mach_host_arch_mach): Remove assignment from
 	inside if test.

	* Makefile: Removed dependencies that are now automatically
 	generated.

Wed Jul  5 18:00:49 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile (OTHERLIBS): Define var.
	(all, exec): Delete targets.

Tue Jun 27 11:48:08 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* exec.c (load_section): Remove assignments from if tests.
	(map): Likewise.
	(prepare): Likewise.
	(load): Likewise.
	(servercopy): Likewise.
	(do_exec): Likewise.
	(S_exec_setexecdata): Likewise.
	(S_exec_exec): Put extra parens around assignment inside while
	test.

Thu Jun  8 02:57:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (struct execdata.info.elf): Add members `anywhere' and
 	`loadbase'.
	(load_section): Use them; if `anywhere' set, load the section anywhere.
	Record load address in `loadbase'.
	(check_elf): Initialize `anywhere' and `loadbase'.
	(postload): Merged into load.
	(load): Perform postload functionality here, after calling
	finish_mapping.
	(finish): Take new flag arg; deallocate file port only if set.
	(do_exec): Pass flag to finish appropriately.
	Don't call finish_mapping and postload after load.  KLUDGE: Load
 	the interpreter before the program instead of after.

Mon Jun  5 06:42:33 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c: Majorly revamped: Now supports the ELF format directly.
  	Secondarily uses the BFD library #ifdef BFD.  Supports gunzipping
 	only #ifdef GZIP.
	* hostarch.c: Rewritten to unconditionally return both BFD and ELF
 	machine types.

Fri May 12 18:59:21 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* exec.c (S_fsys_set_options, S_fsys_mod_readonly): Change from
	mod_readonly to set_options.

Thu Apr 20 22:14:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (check_gzip): Rewind the stream before calling
 	`get_method'.  Open a new BFD on the uncompressed data stream
 	before return.

Sun Apr  9 01:27:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (struct execdata) [BFD]: New member `interp_section'.
	(check_section): Notice section named ".interp" and set that pointer.
	(load_section): Do nothing if the section is zero size.
	When reading into our copy of the overlap page, don't read past
 	the end of the section.
	(do_exec): Consolidate new subfunction `check_maybe_gzip'.
	If there is an interpreter section, load the interpreter file too,
 	and use its entry point instead of the user program's.  Cleaned up
 	and made more robust deallocation of BOOT info on error.
	(deadboot): New function, split out of do_mach_port_notify_no_senders.

	* Makefile (vpath lib%.a): Add search path.
	(exec): Depend on -lbfd and -liberty.
	(CPPFLAGS): Append -DBFD; omit -DA_OUT_H=...
	(bfdexec): Target removed.
	* exec.c (load_section): fseek to desired position before freading.
	(input_room): Always map a page-aligned region.

Thu Feb  9 01:01:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (check_section): Don't check SEC_RELOC flag.

Wed Feb  8 19:48:11 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* exec.c (load_section) [BFD]: BFD does not set SEC_HAS_CONTENTS
	on a.out BSS's ever; don't make zeroing of bss conditional on that.
	It's not clear exactly what SEC_HAS_CONTENTS is for anyhow;
	perhaps the Right Thing is to set in on BSS.  In any case, don't
	depend on this flag here.

Sat Jan 28 17:08:02 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c (prepare): Give the stream a seek function.

Sun Jan 22 03:16:17 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c: Update BFD code; it works now.
	* hostarch.c [BFD]: Fix prototype.

Thu Jan 19 01:24:18 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hostarch.c: Add case for CPU_TYPE_ALPHA.

	* hostarch.c (bfd_mach_host_arch_mach, aout_mach_host_machine):
	Use mach_msg_type_number_t instead of unsigned int.  Cast
	&HOSTINFO to (natural_t *).

Sun Jan 15 06:29:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* exec.c [BFD] (bfd_mach_host_arch_mach): In decl, MACHINE arg is
        `long int *' now.
	[BFD] (host_bfd_arch_info): New variable.
	[BFD] (host_bfd): Initialize `arch_info' member to its address.
	(check) [BFD]: Use bfd_arch_get_compatible properly, rather than the
	nonexistent bfd_arch_compatible.
	(main) [BFD]: Fill in host_bfd.arch_info instead of old
	`obj_machine' and `obj_archiecture' members, which BFD no longer has.
	* hostarch.c [BFD] (bfd_mach_host_arch_mach): MACHINE arg is `long
        int *' now.

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 ().
