Fri Mar 25 23:14:22 1994  Eric Youngdale  (eric@esp22)

	* elfinterp.c: Fix bug where we would sometimes look
	in the wrong place for shared libraries.

Thu Mar 24 22:48:57 1994  Eric Youngdale  (eric@esp22)

	* readelflib1.c (_dl_load_elf_shared_library): Print
	error message if /dev/zero cannot be opened.

Sat Feb 26 12:15:37 1994  Eric Youngdale  (eric@esp22)

	* Makefile: Add libpwd.o to list of libraries to link.

	* kernel.diff: Remove (no longer needed with latest ibcs stuff).

Thu Feb 17 00:08:29 1994  Eric Youngdale  (eric@esp22)

	* boot1.c: Always use mprotect to make pages writable - 
	the R_COPY_386 bug in SVr4 makes this a requirement.

Sun Feb 13 12:33:22 1994  Eric Youngdale  (eric@esp22)

	* LIBSRC: Add libdirent.o

Sat Feb 12 11:17:59 1994  Eric Youngdale  (eric@esp22)

	* kernel.diff: Update.  We need an iput(interpreter_inode)
	in there so that the inode was properly released.

	* boot1.c: Put return value of _dl_fixup in goof.
	Add load address to address of .init and .fini functions.

	* globals.c: Initialize optind to 1.

	* Makefile: Put libc.so.1 in parent directory, not here.

	* elfinterp.c: Add some debugging code to trace which
	functions we are calling.

Sat Feb 12 01:08:59 1994  Eric Youngdale  (eric@esp22)

	* string.h: Change assembler labels for strcmp.

	* hash.c(_dl_elf_hash): Do not make static.

	* elfinterp.c (_dl_copy_fixups): Locate global variables
	that appear in multiple modules, and copy data up to
	higher modules.  This is required because the SVr4 ld
	cannot be reliably depended upon to provide R_386_COPY
	relocations to perform this.  I understand that Solaris
	gets this one right.

	* boot1.c (_dl_boot): Call _dl_copy_fixups.  Should only
	call this if interpreter is /usr/lib/libc.so.1.  If
	interpreter is /usr/lib/ld.so.1, then this was linked
	on Solaris, and bug is not present.

Fri Feb 11 17:45:28 1994  Eric Youngdale  (eric@esp22)

	* boot1.c (_dl_fixup): Undo previous changes for R_386_COPY.

	* elfinterp.c: Likewise.

	* boot1.c (_dl_fixup): New function - perform relocations
	in reverse order of module's appearance on list so that
	COPY directives will work better.

Mon Feb  7 21:52:17 1994  Eric Youngdale  (eric@esp22)

    Work around a possible bug in SVr4 ld.

	* elfinterp.c(_dl_do_copy_relocation_information): New function.
	(_dl_parse_relocation_information): Ignore the R_386_COPY
	relocations. 

	* boot1.c: Call _dl_do_copy... after all other relocations are done.

	* Makefile: generate file .gdbinit based upon correct symbol
	offset for libc.so.1
 
Sat Feb  5 08:46:33 1994  Eric Youngdale  (eric@esp22)

	* globals.c: Use _environ instead of _libc_environ.

	* boot1.c: Use _environ instead of _libc_environ.

	* boot1.c: Do not try and "call" entry point.
	Instead strip all local variables from stack
	(with "leave" instruction), put the address of
	_dl_intrepreter_exit in %edx, and then
	jump to the program entry point.  This makes it look
	like the application directly received control from
	the kernel.

Fri Feb  4 01:05:17 1994  Eric Youngdale  (eric@esp22)

	* elfinterm.c: If we are unable to resolve a symbol on
	the fly, print message and punt.

	* syscall.h: Add return type for mprotect().

	* boot1.c: Use mprotect to make text pages for application
	writable for dynamic linker.  Previously we only made
	program interpreter text pages writable.

	* boot1.c (dl_boot): Set _libc_environ variable (pointer to
	environment).  Call __setfpucw to init coprocessor.

	* globals.c: Define __fpstart as an empty function.

	* hash.h: Add fields to elf_resolve for ppnt and n_phdr.

	* readelflib1.c: Set these for libraries we load.

	* boot1.c: Set these fields for the interpreter and the
	application.   Then use these to scan the headers for
	blocks of memory that need to have the protections set to
	R/O.

	* elfinterp.c: Add support for R_386_COPY reloc type.

	* boot1.c, elfinterp.c: Initial dynamic linking only for symbols
	that begin with "_dl_".  We get screwed up with some library
	symbols otherwise.

	* boot1.c: Call .init function, call atexit() with .fini.

	* boot1.c: Terminate with exit(status), not _dl_exit(status);

	* boot1.c: Use DT_TEXTREL to determine whether we need to use
	mprotect to make text pages writable.
