Sat Dec  3 23:39:22 1994  Eric Youngdale  (eric@andante)

	* Throughout:  Update dynamic loader to use same source tree as
	the loader used for native ELF.  Use IBCS_COMPATIBLE defines to
	differentiate behavior.

	* elfinterp1.c: Search /usr/i486-sysv4/lib instead of /usr/lib.

Sat Aug 20 23:26:55 1994  Eric Youngdale  (eric@esp22)

	* elfinterp.c: Fix bug involving RPATH.

Thu Jul 28 21:22:25 1994  Eric Youngdale  (eric@esp22)

	* Makefile: Fix so that it is possible to build using GNU binutils
	as well as SVr4 tools.  Use "make GNUELF=true" to select this.

Fri Apr  1 20:16:13 1994  Eric Youngdale  (eric@esp22)

	* boot1.c (_dl_boot): Fix so that there are no explicit
	references to libc at all.  Use dl routines to find
	addresses of ___brk_addr and _environ, and then store
	the data this way.  Also, do not run the stuff in
	.init and .fini, since apparently the code in
	crt1.o on a SVr4 system already does this.

	* Makefile: Add new target ../ld.so.1, and all.
	All builds both ld.so.1 and libc.so.1.  The file
	ld.so.1 only contains the dynamic linker (no libc).
	Some systems (Solaris) seem to want to use this
	instead of building the dynamic linker into libc.so.1

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.
