Mail Archives: djgpp/1992/12/22/05:57:37
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 -