[comp.unix.wizards] a new? topic - dynamic loading

jcz@sas.UUCP (John Carl Zeigler) (06/18/87)

I am working on a nifty application that uses 'dynamic loading,'
and I thought it might make an interesting topic for this
news group.

I know that some LISP systems and the HP BASIC system use
run-time linking and I wonder just how various UNIX systems handle
dynamic loading.

The basic question is:
How can you allocate executable memory (e.g. expand the text space)
or Can you execute out of the data space?    On 68xxx systems, the later
works fine.   I assume that VAX implementations of dynamic loading
do the same.    The newer architectures (and many older ones)
may have hardware or software enforced execute protection for the data
space making it hard to try this scheme.   On such systems there would
have to be a way to malloc executable space.   In either case, the
normal symbol table produced by ld in the a.out file (ld -r)
seems to be sufficient to provide run-time linking.

In general, what are the implications of dynamic loading under UNIX?
Is there any effort in the standards efforts to provide kernel (or CRT lib.)
support for this?     (Tektronix has such a call in their BSD Implementation)
What about dynamic loading and shared memory - a path to shared libraries?



-- 
--jcz
John Carl Zeigler
SAS Institute Inc.
Cary, NC  27511           (919) 467-8000        ...!mcnc!rti!sas!jcz