[comp.unix.aux] Shared libraries and me

coolidge@casca.cs.uiuc.edu (John Coolidge) (08/09/90)

I'm working on shared library-izing some stuff for A/UX, and I've got
a fairly major problem: no documentation. Actually, that's not true:
I've got a copy of the SVR3 shared library documentation from another
machine and it's very accurate as far as it goes. Between it and the
mkshlib man page, I've gotten a pretty good idea of what needs to be
done to make a shared library, and I've done most of it. What I now
need is the table of addresses that shared libraries can use. I can
easily enough figure out where libc and libmac live in memory, but at
what addresses should user shared libraries live (especially if
they're likely to be "semi-standard" shared libraries that quite a few
packages use)?

Could someone with the manuals send me the appropriate information?
There's a nice table/figure in the manual I have which shows the
appropriate information for a 3b1, and I suspect the A/UX manual has
a similar table --- which is what I need.

Thanks,
--John

--------------------------------------------------------------------------
John L. Coolidge     Internet:coolidge@cs.uiuc.edu   UUCP:uiucdcs!coolidge
Of course I don't speak for the U of I (or anyone else except myself)
Copyright 1990 John L. Coolidge. Copying allowed if (and only if) attributed.
You may redistribute this article if and only if your recipients may as well.

abyss@Apple.COM (Ananthan Srinivasan) (08/10/90)

The shared library documentation is in A/UX Programming Languages and Tools -
Vol. 1 of the A/UX 2.0 set of manuals. Additional info. is present as already
mentioned in the 'mkshlib' man pages.
Re. the suitable address ranges - the above documention does not have any
information. This is going to hopefully be in the 'Tech. notes' for developers.
The current scheme of mapping puts the shared library targets in the 256M
chunk of the system ROM address space (i.e between addresses 40000000 and
50000000). Libraries developed within Apple are meant to be mapped between
40000000 and 4800000 and libraries developed by others are to be mapped betw.
48000000 and 50000000. Mapping addresses is subject to the requirement by the
linker that it be on 256K boundaries.
We are trying to put a mechanism in place where developers of public usage
libraries can obtain "address ranges" to map their libraries into and hence
avoid clashes with other library addresses.
(Note : The above addresses are all in hexadecimal notation.)
Srinivasan, A.B.