Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!zaphod.mps.ohio-state.edu!mips!apple!sticks!dwb From: dwb@sticks.apple.com (David Berry) Newsgroups: comp.unix.aux Subject: Re: A/UX 2.0 press release Message-ID: <7360@goofy.Apple.COM> Date: 22 Mar 90 20:06:01 GMT References: <39698@apple.Apple.COM> <1990Mar22.060011.5972@noao.edu> Sender: usenet@Apple.COM Organization: Apple Computer Lines: 25 In article <1990Mar22.060011.5972@noao.edu> tody@noao.edu (Doug Tody X217) writes: >Can anyone shed some light on how the new shared library facility in A/UX >2.0 is implemented? Does this imply a general file mapping facility, with >copy on modify and so on? Are compilers that can generate position >independent code needed to make use of the shared libraries? Can the >linker link a process with the base of the text segment located at an >arbitrary user specified address? If this is a general shared library >facility that is quite a plus for A/UX, as some of the big workstation >vendors do not even have this yet. I'm going to do my best to answer these questions, but I may not get them all absolutely correct, I've had relatively little to do with the actual implementation. The A/UX Shared Library facility allows you to create dynamically loaded, but statically linked, shared libraries. The libraries are bound at a fixed address and a jump table is bound into the caller. At load time the appropriate libraries are matched up with the binary and loaded via the normal demand page scheme. The normal compiler suite plus a new tool, included with the release, are used to create shared libraries. Any compiler should work, as all the work is done by the linker. David W. Berry A/UX Toolbox Engineer dwb@apple.com