Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ptsfa!ihnp4!alberta!bjorn From: bjorn@alberta.UUCP (Bjorn R. Bjornsson) Newsgroups: comp.arch Subject: Re: implementing shared libraries Message-ID: <301@pembina.UUCP> Date: Wed, 22-Apr-87 19:59:00 EST Article-I.D.: pembina.301 Posted: Wed Apr 22 19:59:00 1987 Date-Received: Sat, 25-Apr-87 19:21:20 EST References: <12823@watnot.UUCP>, <926@aw.sei.cmu.edu.sei.cmu.edu> <7952@utzoo.UUCP> Organization: U. of Alberta, Edmonton, AB Lines: 28 In article <7952@utzoo.UUCP>, henry@utzoo.UUCP (Henry Spencer) writes: > Don't forget the problems of (a) where does static data for the library > functions live (they need to know this), I favor having a stub that passes the address of these (eg. 'errno', '_iob' etc.) linked into each and every process image. That way you don't have to touch the linker (not that Unix linkers couldn't stand to be touched up {a,"more than a little"} bit B-). This sort of stuff can actually be done *without* source code if you're a crack hack (it helps to have the object modules and 'adb' though). > and (b) how does the user code > find out where the foobar() function is. I think the latter is more what > the original question was about. This one is easier yet (if you have shared memory or default mapping of system address space) and has many solutions unless the architecture is Unix bound and specifically forbids executing out of a process' data segment (assuming System V compatible shared memory here). I'm not much of a socialist B-), even if I advocate sharing common procedures. OR anyone? Bjorn R. Bjornsson {ubc-vision,ihnp4,mnetor}!alberta!bjorn