delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/12/22/05:57:37

From: mcastle AT mcs213k DOT cs DOT umr DOT edu
Subject: DLD finished!
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Date: Tue, 22 Dec 92 4:25:25 CST

I just finished the port of dld 3.2.3 (Dynamic Link Editory) for use with
djgpp.  The port is pretty complete (I have problems with just one example
program, more later).  

DLD is a library you can link in with you programs to provide added 
functionality.  Using DLD you may link in code (in the form of .o files
or .a files) at run time as opposed to compile time.  You may also unlink
any functions at run time (including those originally compiled into the
program).

Using this library you can write overlay modules, dynamic link libraries,
drivers for testing routines, and much more.   An industrious person 
should be able to use DLD along with Eldridge's multitasking library and
Biegl's graphics library to write a decent implentation of a cooperative 
windowing environment with different application specifially written for
said environment.    

What's included:  The package as supplied will be very nearly the same as
the package found on prep.ai.mit.edu.  The few changes I had to make were
the mainly dos-isms (drive-colon stuff, semi-colon separated paths, both
types of directory slashes, support for and exe prepened a.out file).  I
did have to make one change to the aout.h file supplied with djgpp, but 
this change is only necessary to compile the package, not use.  I will
also include the compile library and test exectuables.

Caveats:  Documentation is sparse.  All that is supplied is a texinfo
file and two postscript files.  The texinfo is fairly readable on it's 
own, and is also small enough that the info reader in put out by the 
gnuish people should work on it (demacs should also work, of course).
One postscript file is the texinfo file ready to be printed, the other
is an early draft of an article in Software Practice and Experience,
Vol. 21(4), 375-390 (April 1991).  This paper provides the really neat
descriptions of the uses for dld.

Also, I could not get one of the example programs to work.  Reload.  This
example essentially loads in another complete program (with main, et al)
and runs it.  Unfortunately, it cannot resolve one stupid reference, and 
therefore run.  I simply cannot trace down what is wrong.  I'm not sure
if its an error in the supplied linker (it uses the -r option of ld to
create a relocatable version of the second exectuable to be loaded in),
or a bug in dld.  I need to know what the functionality of the trouble
function (xyzzy from libc.a), but I don't have the disk space to keep 
the source for libc on line and figure out what's going on.  

DLD will be available as soon as I get it uploaded (which may be awhile
as our machine will be down for PM in about 3.5 hours), and I figure out
which archives to put it on (since ftp.math.niu.edu is being moved around
the moment and I'm not sure where to put it on barnacle, I still have 
some work in that respects to do).

Next: MAKE!  (I hope ;-)

regards,
Mike Castle
mcastle AT cs DOT umr DOT edu

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019