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