previous history lost in the dungeons of RCS!

printstk.c, fixstk.c:: ++jrb (relevant to tos gcc only)
	ensure that we are looking at a _stksize in the data section.
	(user defined _stksize). (thanks bernd)

fixstk.c:: ++jrb (relevant to tos gcc only)
	if new size did'nt have a trailing K or M calc_newsize was
	terminating the size string one character too soon. (thanks bernd)

ld.c:: ++jrb (GNULIB is relevant to tos-gcc only)
	environment variable GNULIB can now specify a list of dirs
	to look for lib files. GNULIB is a ';' or ',' delimited
	list of dirs. in the simplest case it is just one dir
	as it was previously. (thanks bernd)
	(gulam users: be sure to quote ';' s)
	Also note: gcc (tos) will look for the startfile 'crt0.o' *only*
	on the first directory specified in GNULIB.
	gcc-cpp.ttp now will look for include files in each of the dirs
	specified in GNULIB, if it does not find the environment var GNUINC
	first (which can be a list of dirs too).

makefile.st:: ++jrb
	target names adjusted.

ld.c, sym-ld.c:: ++jrb
	for sparc based cross-linker, was missing a
	!defined(CROSSATARI) around the reloc defns. thanks lars!

ld.c, sym-ld.c, ar.c:: ++jrb
	adjusted for +ve errno's

ld.c :: andreas schwab
	handle the case when there are no reloc bytes in the program
	(impossible for C programs, but in a handwritten asm program
	its possible)

ld.c, sym-ld.c:: ++jrb
	exit code from main was getting lost. put an explicit exit() there.
	thanks allan for pointing this out.

ld.c:: ++jrb
	#ifdef'ed out coptxtrel aand copdatrel that are not used by atari

Makefile.st, Makefile.minix:: ++jrb
	add LDFLAGS

cnm.c:: ++jrb
	cast was missing.

size68.c:: ++jrb
	fixed it up for WORD_ALIGNED (32 bit alignment) machines.

nm.c:: ++jrb
	fixed up alloca stuff for sparc cross-nm

Makefile.cross:: ++jrb
	make for size68 adjusted so that .c.o rule applies and CFLAGS
	are picked up (for -DWORD_ALIGNED).

ld.c:: ++jrb
	look up env var GNULIB for minix (native) too. GNULIB can be
	a ',' or ';' seperated list of dirs to search for libs (-llib)

ld.c:: ++jrb
	fixed for -DWORD_ALIGNED for minix cross-dev
	(cross-sparc-minix verified). In Makefile.minix 
	# define WORD_ALIGNED if on a 32 bit alignment host.

Makefile*, ld.c, cnm.c, nm.c :: ++jrb
	minor adjustments for sparc (WORD_ALIGNED).

gnu-out.h:: ++jrb
	replaced with newer one from gnu (from gas-1.37)

ld.c:: ++jrb
	minor adjustment for new gnu-out.h

ld.c:: ++jrb
	write_atari_sym(): distinguish between local and global sym
	thanks Michal.

nm.c::++jrb
	fixed up headers, and new magic field in gnu-out

ar.c:: ++jrb
	fixed up rename bug

nm.c, size.c, (sym-ld just  for completeness):: jens
	complete sync with new gnu-out

printstk.c, fixstk.c: michal
	use _initial_stack when it it defined instead of _stksize
	thanks michal.

nm.c, ar.c:: Frank Ridderbusch
	changes to correctly read stuff on WORD_ALIGNED machines
	support for USG machines


cnm.c:: frank, michal, jrb
	put in changes for gst sym.
	put the WORD_ALIGNED code back.
	correct minor bugs with mem free
	make it fopen "rb" for atari

	PLEASE -- when you make changes, dont strip out WORD_ALIGNED
	code. it may not be important on the machine you use, but
	it is imporant on other machines.

ld.c:: frank
	out in gst symbol support. ld -G will activate it.
	(note: ld -g does'nt)
	ld -v will now give you a version.
	make -v and -G valid for cross ld too

	thanks to frank and michal for their diffs.

size68.c:: ++jrb
	return valid status from main()

ld.c:: ++jrb
	ok, i got enough bitching from people about the disk i/o in ld.
	changed it to use buffererd i/o. you can tune up the buffer
	sizes for your configuration. look for the
	setvbuf(, , , size) calls.

strip.c:: michal
	new coding from michal. more options, and gst syms compatible.
	Thanks!

  	usage: strip [-g] [-k] [-l filenames] files ...
	-g	keep all global symbols
 	-k	keep _stksize symbol, so stack size can be adjusted
 		even for nearly-stripped gcc produced executables
 	-l nms	keep all symbols listed in a file 'nms'

	fixed up slightly for WORD_ALIGNED and unix cc

strip.c:: andreas
	try to rename the temp file, before trying to copy. if rename
	fails, just copy. (the renaming will succeed if the tmp
	is on the same device. I think).


size68.c:: andreas
	i had the message backwards.

ld.c:: andreas
	cleanup. Thanks andreas
	andreas: i did not change the default to fastload. i think in
	this case (to borrow pres. bush's favorite word) its PRUDENT to be
	conservative :-)

ld.c:: michal
	cleanup lots of int/pointer warnings. Thanks mical.

ar.c:: frank
	finish WORD_ALIGNED ar diffs.

ld.c:: frank
	make a cross-ld use env var GNULIB (like the tos verison) instead
	of having a hard coded path.

ld.c, sym-ld.c, gnu-out.old...:: ++jrb
	hack up ld to fake out debugger syms when producing tos executables
	you should definitely not get any bogon alerts now, when linking
	with a '-g' (note: NOT -gg) compiled files.
	hack up others to work with -g.
	gcc -g should work now, and gdb should work with -g compiled
	programs.

ld.c, sym-ld.c: ++jrb
	fix initialization of xtra_ref.n_type

sym-ld.c:: ++jrb
	shit i have to fix this... fix up WORD_ALIGNED problems (just enough
	to get by!). merge all the ld changes, except protos and buffered i/o
	changes. It works now on a sparc!
	gcc -g is working well now.
	let sym-ld use gnu-out.old

gnu-out.h, stab.h:: ++jrb
	merge in minor changes from binutils 1.9. these changes should
	make no difference.

----------------------------- Patchlevel 18 ---------------------------------

ld.c:: david boyce (uunet!sifvs3.SINet.SLB.COM!boyce)
	changes for g++
	  -- handle set vectors (g++ does constructors this way)
	  -- added code for N_INDR too (though its not used)

	yeah, we finally have a g++ that is not a total kludge, and works
	ALL the time, and not some of the time -- great work david.

*******************  RENAME PatchLevel.h to PatchLev.h ******************

----------------------------- Patchlevel 19 ---------------------------------

ld.c, sym-ld.c:: ++jrb
	include PatchLevel in version printout.

ld.c:: ++jrb
	merge the changes above.
	more hacks to get set_vectors working.
	dont pass nlist->string when calling write_atari_sym() for
	a set vector. just pass it a dummy string, and write_atari_sym()
	will fake it in any case. gdb will gobble it up, no problem.
	i dont know about other debuggers though.

----------------------------- Patchlevel 20 ---------------------------------

ld.c:: Kurt Olsen (uunet!cache.usu.edu!kurto)
	Changes for cross-ld on a byte-swapped host. cross-ld will now work
	correctly when hosted on a machine that has the opposite byte sex
	than the 68K. ie: cross-ld on a little endian host (like the decStations 3100/vax,
	intel 808* series etc), cross linking for the 68k a big endian machine.

	On a little endian host make sure you have -DBYTE_SWAP in CFLAGS or on
	the cc command line.

sym-ld.c:: ++jrb
	merge in set vector changes. G++ may just work with gdb :-) :-)

	i will let someone else do the BYTE_SWAP changes. hint hint :-)

sym-ld.c, ld.c:: ++jrb
	fix up symbol that is output for set_vectors. the comment in ld.c
	that indicated that the storage for s set_symbol was not trashed
	was completely wrong, and hence misleading.

----------------------------- Patchlevel 21 ---------------------------------

sym-ld.c, ld.c:: david
    demangle g++ names is -lg++

cplusdem.c:: david
    new file, copy of cplus-dem.c from the g++-1.39.0 distribution.
    cp ../gcc-1.39/cplus-dem.c cplusdem.c  : the demangler source

nm.o:: david
    add the demangler:
    add a new option `-x'. if -x is specified, DO NOT try to demangle
    names. by default try to demangle them. This is fine because
    the demangle will leave ordinary names alone.

--------------- ooops, some history got lost here, sigh! ----------------

gnu-out.old: ++jrb
	remove this file, no longer needed.

sym-ld.c:: ++jrb
	use gnu-out.h instead of gnu-out.old.

----------------------------- Patchlevel 24 ---------------------------------

cplusdem.c:: ++jrb
	update C++ demangler for gcc 2.0

----------------------------- Patchlevel 25 ---------------------------------

ldd.c, sym-ld.c:: ++jrb
	hook in the demangler into write_map (-M) too. the output of
	gcc-ld -M -t looks much nicer now when dealing with -lang-c++.

	
	dont try to print set elements as local symbols (when -M). guess
	who was seeing bombs!

nm.c:: ++jrb
	free demangled storage.

----------------------------- Patchlevel 26 ---------------------------------

ld.c:: Michal
	clean up compiler noise.

cnm.c:: andreas
        adjust proto for ckfread; correctly count symbols if
	WORD_ALIGNED

cplusdem.c:: andreas
        some names couldn't be demangled (like template
	functions, static members)

ld.c:: andreas
        adjust protos for mywrite, xmalloc, xrealloc;
	initialize gst_symboltable and gst_symbols if CROSSATARI

strip.c:: andreas
        preserve long symbols, avoid warnings about cast

sym-ld.c:: andreas
         write only the symbols since this is all what gdb needs

----------------------------- Patchlevel 27 ---------------------------------

fixstk, printstk.c:: ++jrb
    fix them up for word aligned machines. ie ifdef WORD_ALIGNED

Makefile.cross, Makefile.hp:: ++jrb
    add target for fixstk/printstk to the cross-makefiles.

----------------------------- Patchlevel 28 ---------------------------------

cplusdem.c:: michal
    cleanup, plus in one routine was'nt returning the correct value.

sym-ld.c, ld.c:: ++jrb
	always link in the demangler (earlier it only kicked it in
	when -lg++ was seen on the command line). the demangler will
	corectly not demangle C and other unmangled symbols.

----------------------------- Patchlevel 29 ---------------------------------

ar.c:: jean-marc jmz@obsbea.dnet.nasa.gov
	diff for BYTE_SWAP (for gcc-ar cross on a little endian host, now
	gcc-ar and gcc-ld are all set for cross work on a litle endian machine. 
	i suppose we should do rest of the utils too).

----------------------------- Patchlevel 30 ---------------------------------

ld.c:: ++jrb
	-- sync up with some changes from gnu-binutils v 1.92, especially
	   the common allocation stuff.
	-- make fatal() varargs
	-- detect undefined globals not referenced from a text or data segment
	(thanks to Ulrich Kuehn who sent and example that silently failed).

sym-ld.c:: ++jrb
	fold in relevant changes from above.

----------------------------- Patchlevel 30.5 -------------------------------

strip.c:: alexander lehmann (alexlehm@iti.informatik.th-darmstadt.de)
	I rewrote strip to strip trailing garbage from executables. The
	debug information of TurboC/PureC adds such stuff for example.
	While at this I rewrote the code to support BYTE_SWAPed machines.

ld.c/sym-ld.c/st-out.h, cnmc:: ++jrb
	put out file symbols ala aln. julians nm should do better now.

----------------------------- Patchlevel 31 --------------------------------

sym-ld.c:: michal
	was`nt compiling anymore.

ld.c, sym-ld.c:: michal
	When searching through a library a function symdef_library was
	repeatedly allocating and freeing (at the same address)
	subentry->strings and subentry (line 2962) and later it was executing
		free (subentry->strings);
                subentry->strings = 0;
	My NeXT was patient enough to survive such treatment for a few
	iterations but after a while it was dropping a core from malloc().
	Exactly the same applies to sym-ld. I do not know why this problem

ld.c :: howard
	Incorporate baserel patches.

toglclr.c:: Frank Ridderbusch
	rewrote toglclr for all flags: usage
		toglclr [options] file file ...

	options: -fload = toggle `fast load'
	         -frun  = toggle `load program into fast ram'
                 -fram  = toggle `malloc from fast ram'

toglclr.c:: ++jrb
	clean it up for cross-environment, add support for
        WORD_ALIGNED

Makefile.cross, Makefile.st:: ++jrb
	add target for toglclr

cnm.c:: ++jrb
    cleanup for hpux
----------------------------- Patchlevel 32 --------------------------------

ld.c:: howard
	more fixes for baserel

ld.c:: ++jrb
	fixed BYTE_SWAP problem.

ld.c:: ++jrb
	more BYTE_SWAP fixes in the relocation stuff

toglclr.c: Thomas Schulze, ts@uni-paderborn.de
	add -fshare flag for sharex text (mint 0.96 and up).

----------------------------- Patchlevel 33 --------------------------------

	REMOVE the following files from this (utils) directory
	they have been moved to the include directory

	rm gnu-ar.h
	rm gnu-out.h
	rm stab.def
	rm stab.h



cnm.c: andreas
	New flag -u, print symbols unsorted
	Cleanups

cplusdem.c:: andreas
	Cleanups to sync up with Gnu

stab.def, stab.h:: andreas
	Cleanups to sync up with Gnu *********** NOTE moved to <include>

printstk.c  fixstk.c: andreas
	Allow more than one file name argument
	
strip.c:: andreas
	Preserve the file mode and long symbols,
	 keep __stksize by default, new flag -a to strip
	 really all symbols

	****************************
	* NOTE: new flag -a        *
	****************************

ld.c sym-ld.c:

	- Many cleanups
	- All large stack requirements removed
	[ allocas turned into xmalloc/frees should be much more
	  MiNT freindlier!]
	- defaults changed! ************** NOTE *****************
	default prgflags == 7 now	/* fastload and TT ram */
	default symbol table type == gst_format symbols

	- new options	******************* NEW OPTIONS**************
	 -f load_flags
	 -h heap size

nm.c:: andreas
	- turn alloca()s into xmalloc()s

printstk.c:: andreas
	cleanup
	make it handle long symbols properly

size68.c:: andreas
	cleanup

fixstk.c:: ++jrb
	was missing *argv in usage message


stab.def, stab.h:: ++jrb
	removed from util subdir. use the one in the include
	directory. the one in include has been brought upto date with
	all the cygnus changes.

----------------------------- Patchlevel 35 --------------------------------

Makefile.cross:: michal
	added important note for NeXT users.

	************* NeXT users take note *****************


ar.c nm.c size.c size68.c:: michal
	There were also various instances of 
	"#include /usr/include/something.h"
	I changed them to <something.h> and rely on include path.

size68.c:: michal
	sync up with various recent changes to util.

toglclr.c:: frank
	Added code to handle the memory protection bits under MultiTOS.
	Changed output format slightly.

size68.c:: frank
	change output format to include any MiNT memory prots.
	merged with michals chenages from above. ++jrb

fixstk.c, printstk.c:: ++jrb
	cleanup

----------------------------- Patchlevel 36 --------------------------------

ld.c, sym-ld.c:: ++jrb
	do chmod() on output file.

----------------------------- Patchlevel 37 --------------------------------

ld.c:: Jean-Marc Zucconi (jmz@cabri.obs-besancon.fr )
	on a little endian machine, the output symbol type was'nt being byte
	byte swapped.

printstk.c, fixstk.c:: Jean-Marc Zucconi (jmz@cabri.obs-besancon.fr )
	fix up for little endian machines. ( BYTE_SWAP #defined)

ld.c:: Thomas  FFH002@VM.HRZ.UNI-ESSEN.DE
	fixes for BYTE_SWAP (ie little endian machines for N_SETV (for
	global ctor/dtor table) to ld.c. Thanks!

nm.c:: Thomas  FFH002@VM.HRZ.UNI-ESSEN.DE
	fixes for BYTE_SWAP (little endian machines). thanks!

	486/freeBSD now reported to work great as a cross-compile
	platform for the atari-gcc/g++. (for 486/freeBSD use
	-DBYTE_SWAP while compiling utils. Dont know if
	-DWORD_ALIGNED is needed)

----------------------------- Patchlevel 38 --------------------------------

ld.c, sym-ld.c:: Christian Felsch (felsch@tu-harburg.d400.de)
	Fix up for a new lib name scheme:
	If $GNULIB is set, ld/sym-ld assume, that the compiler is
	installed on TOS file system and they use TOS lib names (xxx.olb),
	otherwise they use UNIX names (libxxx.a).
	gcc 2.7.2 set option -n, when using -mbaserel. Then the linker load
	bxxx.olb instead of xxx.olb
	gcc 2.7.2 set new option -H, when using -mshort. Then the linker append
	'16' to the lib name (xxx.olb -> xxx16.olb)

----------------------------- Patchlevel 39 --------------------------------

ld.c, sym-ld:: Christian Felsch (felsch@tu-harburg.d400.de)
	Adapted for gcc 2.7.2.3. 
	The correct lib names (b for mbaserel, 16 for short ints) are now 
	generated by gcc!
	Option -H removed.

version.c, *.c:: Christian Felsch (felsch@tu-harburg.d400.de)
	Add option '-v' to all programs.

strings.c:: Christian Felsch (felsch@tu-harburg.d400.de)
	New program.

sym-ld.c:: Christian Felsch (felsch@tu-harburg.d400.de)
	Default output file named a.sym instead of a.out.

ld.c, sym-ld.c:: Christian Felsch (felsch@tu-harburg.d400.de)
	Default lib paths changed from \\gnu.. to UNIX-defaults (/lib,
	/usr/lib, /usr/local/lib)

----------------------------- Patchlevel 40 --------------------------------
