489 lines
14 KiB
Plaintext
489 lines
14 KiB
Plaintext
# Rationales for an official so_locations file:
|
|
# 1) to save kernel space reserved for page table -- each active
|
|
# 4Meg of user virtual space requires 4K of kernel page table space;
|
|
# 2) to save kernel virtual space (tlb) required to map each page of
|
|
# page tables.
|
|
# 3) to give rqsall information to help it place all the libraries so
|
|
# that they quickstart.
|
|
#
|
|
# 1) Put all libraries that you think are likely to be linked by the same
|
|
# program in the same 4Meg segment. This saves kernel page table space
|
|
# and can potentially speed up the program.
|
|
#
|
|
# 2) Allow adequate space between 4Meg segments of non-related libraries
|
|
# so that redistribution of one ISM type does not mess up other ISMs.
|
|
#
|
|
# 3) All libraries should be listed. If packing isn't an issue
|
|
# then use the 'catch-all' range at the end.
|
|
# 4) There are 2 ways to pack - take a 4Mb chunk and have each .so
|
|
# specify the entire 4Mb range. ld(1) will do the packing.
|
|
# This has the advantage of dealing well with one or more
|
|
# libraries changing size - each build will straighten things out
|
|
# unless the total size gets too large. It has a few disadvantages:
|
|
# a) if you have more than one version of the library with the same
|
|
# soname (this file matches on soname), and one is alot
|
|
# large than the other, you can run into trouble if
|
|
# the smaller one is built first, then another library in the
|
|
# range is built, followed by the larger version. The larger
|
|
# version won't fit.
|
|
# b) if the libraries come from different isms and something goes
|
|
# wrong with the build, its more likely that libraries
|
|
# will collide.
|
|
# The second way is to create a separate range for each .so. This
|
|
# will guarentee no overlaps, but of course if the library grows
|
|
# too large ...
|
|
# 5) Don't put libs in here that aren't shipped - we'll run out of space!
|
|
#
|
|
# This file is used for both o32 and n32
|
|
#
|
|
# The range 0x0f800000-0x0fc00000 is reserved for system related libraries.
|
|
# rld heap (128K max) at 0x0fbe0000 (rld heap can grow beyond 0x0fc00000).
|
|
rld.heap \
|
|
:st = $range 0x0fbe0000, 0x00020000:\
|
|
:st = .data 0x0fbe0000, 0x00020000:\
|
|
|
|
# rld text (384 K max) at 0x0fb60000, data (128 K max) at 0x0fbc0000
|
|
# this is so that we can reserve this slot for rld.
|
|
rld \
|
|
:st = $range 0x0fb60000, 0x000080000:\
|
|
:st = .text 0x0fb60000, 0x00060000:\
|
|
:st = .data 0x0fbc0000, 0x00020000:\
|
|
|
|
#
|
|
# we explicitly set the text and data since all h*ll breaks out if
|
|
# we ever have data below text
|
|
#
|
|
libc.so.1 \
|
|
:st = $range 0x0fa00000, 0x000160000:\
|
|
:st = .text 0x0fa00000, 0x00140000:\
|
|
:st = .data 0x0fb40000, 0x00020000:\
|
|
|
|
libcurses.so \
|
|
:st = $range 0x0f9b0000, 0x000050000:
|
|
libadm.so \
|
|
:st = $range 0x0f980000, 0x000030000:
|
|
libcrypt.so \
|
|
:st = $range 0x0f960000, 0x000020000:
|
|
libdl.so \
|
|
:st = $range 0x0f940000, 0x000020000:
|
|
libgen.so \
|
|
:st = $range 0x0f920000, 0x000020000:
|
|
libmalloc.so \
|
|
:st = $range 0x0f900000, 0x000020000:
|
|
librpcsvc.so \
|
|
:st = $range 0x0f8e0000, 0x000020000:
|
|
libw.so \
|
|
:st = $range 0x0f8c0000, 0x000020000:
|
|
libC.so \
|
|
:st = $range 0x0f890000, 0x000030000:
|
|
libC.so.2 \
|
|
:st = $range 0x0ac00000, 0x00400000:\
|
|
libm.so \
|
|
:st = $range 0x0f830000, 0x000060000:
|
|
libmutex.so \
|
|
:st = $range 0x0f810000, 0x000020000:
|
|
|
|
# The range 0x0f400000-0x0f800000 is reserved for X libraries
|
|
libX11.so.1 \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXt.so \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXaw.so.2 \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXmu.so \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXext.so \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXi.so \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
libXpm.so.1 \
|
|
:st = $range 0x0f400000, 0x400000:
|
|
|
|
# The range 0x0e800000-0x0ec00000 is currently reserved for future expansion
|
|
# of the above X libraries.
|
|
reserv1 \
|
|
:st = $range 0x0e800000, 0x400000:
|
|
|
|
# The range 0x0f000000-0x0f400000 is reserved for libgl,libfm,libgltrace
|
|
# we give libgl its own space since it generates potentially lots of versions
|
|
libfm.so \
|
|
:st = $range 0x0f200000, 0x200000:
|
|
libgltrace.so \
|
|
:st = $range 0x0f160000, 0x0a0000:
|
|
libgl.so \
|
|
:st = $range 0x0f000000, 0x160000:
|
|
|
|
|
|
# The range 0x0ec00000-0x0f000000 is currently reserved for future expansion
|
|
# of the above gl and font manager libraries.
|
|
reserve2 \
|
|
:st = $range 0x0ec00000, 0x400000:
|
|
|
|
# The range 0x0e400000 - 0x0e800000 is reserved for libraires used by toto
|
|
libCadmin.so \
|
|
:st = $range 0x0e400000, 0x400000:
|
|
|
|
# The range 0x0dc00000 - 0x0e400000 is reserved for image libraries (IFL/IL)
|
|
libifl.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libil.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libilVk.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflJFIF.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflTIFF.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflFIT.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflGIF.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflPNG.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflSGI.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflPPM.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflPhotoCD.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflRaw.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libcifl.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libcil.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflAlias.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflSOFTIMAGE.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libilTCL.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libiflYUV.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
libilMon.so \
|
|
:st = $range 0x0dc00000, 0x800000:
|
|
|
|
# The range 0x0d800000 - 0x0dc00000 is reserved for opengl/gl libraires
|
|
# see also 0x0a800000
|
|
# In order to prevent libGLcore from getting crowded out, we break the
|
|
# bottom 4MB into two 2MB pieces and give one to libGLcore.
|
|
libGL.so \
|
|
:st = $range 0x0d800000, 0x200000:
|
|
libGLcore.so \
|
|
:st = $range 0x0da00000, 0x200000:
|
|
|
|
# The range 0x0d400000 - 0x0d800000 is reserved for libraries used by toto
|
|
|
|
libvkSGI.so.1 \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libvkhelp.so.1 \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libvk.so.1 \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libvkmsg.so.1 \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libdesktopUtil.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libdesktopIcon.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libdesktopFileicon.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libvkwebhelp.so.1 \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libhelpmsg.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
libdesktopGallery.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
# tooltalk
|
|
libtt.so \
|
|
:st = $range 0x0d400000, 0x400000:
|
|
|
|
|
|
# The range 0x0d000000 - 0x0d400000 is reserved for dmedia libraries
|
|
libaudiofile.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libaudioutil.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libmidi.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libawareaudio.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libdmedia.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libmediaclient.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libaudio.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libvice.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
libVkCapture.so \
|
|
:st = $range 0x0d000000, 0x400000:
|
|
|
|
# The range 0x0cc00000 - 0x0d000000 is reserved for il8n libraries
|
|
libwnn.so \
|
|
:st = $range 0x0cc00000, 0x400000:
|
|
libjgl.so \
|
|
:st = $range 0x0cc00000, 0x400000:
|
|
libXawI18n.so \
|
|
:st = $range 0x0cc00000, 0x400000:
|
|
|
|
# The double range 0x0c400000-0x0cc00000 is reserved for Inventor libraries.
|
|
# Note: n32 inventor is bigger than 1 block, but o32 fits.
|
|
|
|
libInventor.so.3 \
|
|
:st = $range 0x0c670000, 0x00590000:
|
|
libInventorXt.so.3 \
|
|
:st = $range 0x0c400000, 0x00270000:
|
|
|
|
|
|
# The range 0x0c000000 - 0x0c400000 is reserved for lesser used system libs
|
|
libpthread.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libudma.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libl.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libmediad.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libpkg.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libnls.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libmx.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libgrio.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libdm.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libirixpmda.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libabi.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libarray.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libdisk.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libdpipe.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libnanothread.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
librsvp.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libAS.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libprio.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libperfex.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libdprof.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libdplace.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
libfetchop.so \
|
|
:st = $range 0x0c000000, 0x400000:
|
|
|
|
# The range 0x0bc00000 - 0x0c000000 is reserved for video libraries
|
|
libvl.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
Sirius.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
SiriusVL.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
vino.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
ev1.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
sv1.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
cl_cosmo.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
cosmo.so \
|
|
:st = $range 0x0bc00000, 0x400000:
|
|
|
|
|
|
# The range 0x0b800000 - 0x0bc00000 is reserved for less-used Motif librairies
|
|
libMrm.so.1 \
|
|
:st = $range 0x0b800000, 0x400000:
|
|
libUil.so.1 \
|
|
:st = $range 0x0b800000, 0x400000:
|
|
|
|
# The range 0x0b400000 - 0x0b800000 is reserved for SVR4 net libraries
|
|
libnsl.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
libsocket.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
nis.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
resolv.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
straddr.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
tcpip.so \
|
|
:st = $range 0x0b400000, 0x400000:
|
|
|
|
# The range 0x0b000000 - 0x0b400000 is reserved for motif libraries
|
|
libXm.so.1 \
|
|
:st = $range 0x0b000000, 0x400000:
|
|
libSgm.so.1 \
|
|
:st = $range 0x0b000000, 0x400000:
|
|
|
|
# The range 0x0ac00000 - 0x0b000000 is reserved for other compiler libs
|
|
libexc.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libftn.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libfpe.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libfastm.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libmp.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libcomplex.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libm43.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
libCsup.so \
|
|
:st = $range 0x0ac00000, 0x400000:
|
|
|
|
# The range 0x0a800000 - 0x0ac00000 is reserved for other OpenGL libraries
|
|
libGLS.so \
|
|
:st = $range 0x0a800000, 0x400000:
|
|
libGLC.so \
|
|
:st = $range 0x0a800000, 0x400000:
|
|
libGLU.so \
|
|
:st = $range 0x0a800000, 0x400000:
|
|
libFL.so \
|
|
:st = $range 0x0a800000, 0x400000:
|
|
|
|
# The range 0x0a000000 - 0x0a800000 is reserved for cmplrs
|
|
libftn90.so \
|
|
:st = $range 0x0a000000, 0x800000:
|
|
libfortran.so \
|
|
:st = $range 0x0a000000, 0x800000:
|
|
libffio.so \
|
|
:st = $range 0x0a000000, 0x800000:
|
|
|
|
|
|
# Catch-all range
|
|
# If a .so is shipped, and its not in one of the above ranges - place it
|
|
# here. This is also where we place $start_address (for SGI build)
|
|
# so that any non-spec'd .so's will be placed somewhere in here.
|
|
# This range is from 0x02000000 -> 0x0a000000 - 128Mb.
|
|
libmd.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libmalloc_cv.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libMMmalloc.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libogldebug.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
liblim.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libgd.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libwebviewer.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libwio.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libwioutil.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libcwio.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libwwwhelp.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libsgihelp.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libshowcaseui.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libshowcase_shareext.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libshowcase3d.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libdmc.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libdn.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libsnmp.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libX11.so.2 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libblas.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libblas_mp.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libufm.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libMediaViewer.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libfxplugmgr.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libfxplugutils.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libmpi.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libsma.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpvm3.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpvm3-i8.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libst.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
|
|
# tcl libs
|
|
libOratcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libSybtcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libitcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtclObjSrv.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtkGLXAux.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtkGLX.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libexpectk.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtclMotif.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libexpect.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtkX.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtclX.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libtcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpvtcl.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
|
|
# Performance Co-Pilot libraries and PMDAs
|
|
libpcp.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpcp_lite.so.1 \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpcp_pmda.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpcp_wio.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpcp_wioutil.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libpcp_socks.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
pmda_pmcd.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
pmda_proc.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
pmda_environ.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
libvkpcp.so \
|
|
:st = $range 0x02000000, 0x08000000:
|
|
|
|
# All DSO's need to be below 0x10000000 (start of data/heap). This is so
|
|
# that we don't use up valuable heap/stack space by fragmenting
|
|
# the address space. So we pile them all in below 0x0a000000.
|
|
$start_address=0x0a000000
|