# Rationales for an official so_locations file:
#
# See the /usr/lib/so_locations file for a complete rundown. For 64 bits
# the packing issue really isn't important since each 'segment' maps 64Mb.
# So, to make this all easier, we define rld/libc and simply carve out a large
# segment for everyone else...
#
# rld heap (128K max) at 0x000000000fbe0000 (rld heap can grow beyond 0x000000000fc00000).
rld.heap \
		:st = $range 0x000000000fbe0000, 0x0000000000020000:\
		:st = .data 0x00000000fbe0000, 0x0000000000020000:\

# this reserves space for rld
rld \
		:st = $range 0x000000000fb50000, 0x0000000000080000:\
		:st = .text 0x000000000fb50000, 0x0000000000070000:\
		:st = .data 0x000000000fbc0000, 0x0000000000020000:\

#
# 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 0x000000000d980000, 0x00000000001d0000:\
		:st = .text 0x000000000d980000, 0x0000000000150000:\
		:st = .data 0x000000000db30000, 0x0000000000020000:
#
# Catch-all range. All other libraries go in this 217Mb range
#
# 0x0000000002000000->0x000000000d980000

#
# IRIX libraries
#
libcurses.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d7d0000, 0x0000000000030000:\
		:st = .data 0x000000000d800000, 0x0000000000010000:
libnsl.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libsocket.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bfb0000, 0x0000000000010000:\
		:st = .data 0x000000000bfc0000, 0x0000000000010000:
librpcsvc.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d590000, 0x0000000000010000:\
		:st = .data 0x000000000d5a0000, 0x0000000000010000:
libgen.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d740000, 0x0000000000010000:\
		:st = .data 0x000000000d750000, 0x0000000000010000:
libmalloc.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d6e0000, 0x0000000000010000:\
		:st = .data 0x000000000d6f0000, 0x0000000000010000:
libw.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d4f0000, 0x0000000000010000:\
		:st = .data 0x000000000d500000, 0x0000000000010000:
libm.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libmutex.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d680000, 0x0000000000010000:\
		:st = .data 0x000000000d690000, 0x0000000000010000:
libpthread.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d5b0000, 0x0000000000020000:\
		:st = .data 0x000000000d5d0000, 0x0000000000010000:
libC.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libarray.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
liblim.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d700000, 0x0000000000010000:\
		:st = .data 0x000000000d710000, 0x0000000000010000:
libl.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d720000, 0x0000000000010000:\
		:st = .data 0x000000000d730000, 0x0000000000010000:
libcrypt.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d7b0000, 0x0000000000010000:\
		:st = .data 0x000000000d7c0000, 0x0000000000010000:
libgrio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d850000, 0x0000000000010000:\
		:st = .data 0x000000000d860000, 0x00000000000b0000:
libudma.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bfd0000, 0x0000000000010000:\
		:st = .data 0x000000000bfe0000, 0x0000000000010000:
libabi.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bf90000, 0x0000000000010000:\
		:st = .data 0x000000000bfa0000, 0x0000000000010000:
libtt.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libirixpmda.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c010000, 0x0000000000050000:\
		:st = .data 0x000000000c060000, 0x0000000000020000:
libdm.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d760000, 0x0000000000010000:\
		:st = .data 0x000000000d770000, 0x0000000000010000:
libfetchop.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d910000, 0x0000000000010000:\
		:st = .data 0x000000000d920000, 0x0000000000010000:
libdisk.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d780000, 0x0000000000010000:\
		:st = .data 0x000000000d790000, 0x0000000000020000:
libdpipe.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libnanothread.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d660000, 0x0000000000010000:\
		:st = .data 0x000000000d670000, 0x0000000000010000:
librsvp.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d830000, 0x0000000000010000:\
		:st = .data 0x000000000d840000, 0x0000000000010000:
libAS.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libprio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libperfex.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bff0000, 0x0000000000010000:\
		:st = .data 0x000000000c000000, 0x0000000000010000:
libdplace.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bf40000, 0x0000000000010000:\
		:st = .data 0x000000000bf50000, 0x0000000000020000:
libdprof.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bf20000, 0x0000000000010000:\
		:st = .data 0x000000000bf30000, 0x0000000000010000:
libmpi.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libsma.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libpvm3.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libpvm3-i8.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libst.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:


#
# X libraries
#
libX11.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d3b0000, 0x0000000000120000:\
		:st = .data 0x000000000d4d0000, 0x0000000000020000:
libXt.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d1a0000, 0x0000000000090000:\
		:st = .data 0x000000000d230000, 0x0000000000020000:
libXaw.so.2 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d080000, 0x0000000000040000:\
		:st = .data 0x000000000d0c0000, 0x0000000000010000:
libXmu.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d0d0000, 0x0000000000020000:\
		:st = .data 0x000000000d0f0000, 0x0000000000010000:
libXext.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d250000, 0x0000000000020000:\
		:st = .data 0x000000000d270000, 0x0000000000010000:
libXi.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d060000, 0x0000000000010000:\
		:st = .data 0x000000000d070000, 0x0000000000010000:
libXpm.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c4c0000, 0x0000000000010000:\
		:st = .data 0x000000000c4d0000, 0x0000000000010000:

#
# Motif
#
libXm.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000ca30000, 0x0000000000180000:\
		:st = .data 0x000000000cbb0000, 0x0000000000040000:
libMrm.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c9f0000, 0x0000000000020000:\
		:st = .data 0x000000000ca10000, 0x0000000000020000:
libUil.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c580000, 0x0000000000040000:\
		:st = .data 0x000000000c5c0000, 0x0000000000040000:

#
# Open GL
#
libGL.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000cfc0000, 0x0000000000040000:\
		:st = .data 0x000000000bcf0000, 0x0000000000010000:
libGLcore.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bd10000, 0x00000000001e0000:\
		:st = .data 0x000000000d010000, 0x0000000000030000:
libGLU.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000ce90000, 0x0000000000090000:\
		:st = .data 0x000000000cf20000, 0x0000000000020000:
libGLS.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000cd80000, 0x00000000000f0000:\
		:st = .data 0x000000000ce70000, 0x0000000000020000:
libGLC.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bcb0000, 0x0000000000020000:\
		:st = .data 0x000000000bcd0000, 0x0000000000020000:
libFL.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000cce0000, 0x0000000000060000:\
		:st = .data 0x000000000cd40000, 0x0000000000040000:
libogldebug.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bc20000, 0x0000000000090000:\
		:st = .data 0x000000000d000000, 0x0000000000010000:
libufm.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000cc20000, 0x0000000000070000:\
		:st = .data 0x000000000cc90000, 0x0000000000050000:

#
# Desktop
#
libCadmin.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libSgm.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c6f0000, 0x0000000000090000:\
		:st = .data 0x000000000c780000, 0x0000000000020000:
libdesktopFileicon.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c1d0000, 0x0000000000020000:\
		:st = .data 0x000000000c1f0000, 0x0000000000010000:
libvk.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libvkhelp.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libvk.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c3d0000, 0x00000000000c0000:\
		:st = .data 0x000000000c490000, 0x0000000000030000:
libvkhelp.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c2a0000, 0x0000000000010000:\
		:st = .data 0x000000000c2b0000, 0x0000000000010000:
libvkmsg.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c230000, 0x0000000000020000:\
		:st = .data 0x000000000c250000, 0x0000000000010000:
libvkSGI.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c0a0000, 0x0000000000010000:\
		:st = .data 0x000000000c0b0000, 0x0000000000010000:
libvkwebhelp.so.1 \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c280000, 0x0000000000010000:\
		:st = .data 0x000000000c290000, 0x0000000000010000:
libhelpmsg.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:

#
# Compilers
#
libMMmalloc.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libcomplex.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libexc.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libfastm.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libfpe.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libm43.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libmp.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libftn90.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libftn.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libmx.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libC.so.2 \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libCsup.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libblas.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libblas_mp.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libfortran.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libffio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:

#
# Etc.
#
libInventor.so.3 \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libInventorXt.so.3 \
		:st = $range 0x0000000002000000, 0x000000000b980000:

#
# Performance Co-Pilot libraries and PMDAs
#
libpcp.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d600000, 0x0000000000040000:\
		:st = .data 0x000000000d640000, 0x0000000000020000:
libpcp_lite.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libpcp_wio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libpcp_wioutil.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libpcp_socks.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
pmda_pmcd.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bf10000, 0x0000000000010000:\
		:st = .data 0x000000000c6d0000, 0x0000000000010000:
pmda_proc.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000bef0000, 0x0000000000010000:\
		:st = .data 0x000000000bf00000, 0x0000000000010000:
pmda_environ.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:

#
# Digital Media libraries
#
libaudiofile.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libaudioutil.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libmidi.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libawareaudio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:
libdmedia.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c130000, 0x0000000000080000:\
		:st = .data 0x000000000c1b0000, 0x0000000000010000:
libaudio.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000c110000, 0x0000000000020000:\
		:st = .data 0x000000000c1c0000, 0x0000000000010000:
libmediaclient.so \
		:st = $range 0x0000000002000000, 0x000000000b980000:\
		:st = .text 0x000000000d6a0000, 0x0000000000010000:\
		:st = .data 0x000000000d6b0000, 0x0000000000010000:

# Other libraries to follow
# We pick the following number since that is the default starting
# point for mmap() - which will allocate upwards, and ld will allocate
# downwards.
# Do not change the following line
# Non SGI libraries should be below 0x0000004000000000 (1/4Tb)
$start_address=0x000000000d980000
libcpr.so \
		:st = .text 0x000000000d930000, 0x0000000000040000:\
		:st = .data 0x000000000d970000, 0x0000000000010000:
libtoolroot.so \
		:st = .text 0x000000000d810000, 0x0000000000010000:\
		:st = .data 0x000000000d820000, 0x0000000000010000:
libmdbm.so \
		:st = .text 0x000000000d6c0000, 0x0000000000010000:\
		:st = .data 0x000000000d6d0000, 0x0000000000010000:
libpcp_pmda.so \
		:st = .text 0x000000000d5e0000, 0x0000000000010000:\
		:st = .data 0x000000000d5f0000, 0x0000000000010000:
librt.so \
		:st = .text 0x000000000d570000, 0x0000000000010000:\
		:st = .data 0x000000000d580000, 0x0000000000010000:
libsatmp.so \
		:st = .text 0x000000000d550000, 0x0000000000010000:\
		:st = .data 0x000000000d560000, 0x0000000000010000:
libspypt.so \
		:st = .text 0x000000000d530000, 0x0000000000010000:\
		:st = .data 0x000000000d540000, 0x0000000000010000:
libtserialio.so \
		:st = .text 0x000000000d510000, 0x0000000000010000:\
		:st = .data 0x000000000d520000, 0x0000000000010000:
libX11.so.3 \
		:st = .text 0x000000000d280000, 0x0000000000100000:\
		:st = .data 0x000000000d380000, 0x0000000000030000:
libXt.so.3 \
		:st = .text 0x000000000d100000, 0x0000000000080000:\
		:st = .data 0x000000000d180000, 0x0000000000020000:
libXsgivc.so \
		:st = .text 0x000000000d040000, 0x0000000000010000:\
		:st = .data 0x000000000d050000, 0x0000000000010000:
libnurbs.so \
		:st = .text 0x000000000cf40000, 0x0000000000060000:\
		:st = .data 0x000000000cfa0000, 0x0000000000020000:
libXpm.so.2 \
		:st = .text 0x000000000cbf0000, 0x0000000000020000:\
		:st = .data 0x000000000cc10000, 0x0000000000010000:
libXm.so.2 \
		:st = .text 0x000000000c7a0000, 0x0000000000200000:\
		:st = .data 0x000000000c9a0000, 0x0000000000050000:
libMrm.so.2 \
		:st = .text 0x000000000c6a0000, 0x0000000000030000:\
		:st = .data 0x000000000c6e0000, 0x0000000000010000:
libSgm.so.2 \
		:st = .text 0x000000000c600000, 0x0000000000090000:\
		:st = .data 0x000000000c690000, 0x0000000000010000:
libUil.so.2 \
		:st = .text 0x000000000c4e0000, 0x0000000000060000:\
		:st = .data 0x000000000c540000, 0x0000000000040000:
libvk.so.2 \
		:st = .text 0x000000000c2c0000, 0x00000000000d0000:\
		:st = .data 0x000000000c390000, 0x0000000000040000:
libvkwebhelp.so.2 \
		:st = .text 0x000000000c260000, 0x0000000000010000:\
		:st = .data 0x000000000c270000, 0x0000000000010000:
libvkmsg.so.2 \
		:st = .text 0x000000000c200000, 0x0000000000020000:\
		:st = .data 0x000000000c220000, 0x0000000000010000:
libvl.so \
		:st = .text 0x000000000c0e0000, 0x0000000000020000:\
		:st = .data 0x000000000c100000, 0x0000000000010000:
libksync.so \
		:st = .text 0x000000000c0c0000, 0x0000000000010000:\
		:st = .data 0x000000000c0d0000, 0x0000000000010000:
libvkSGI.so.2 \
		:st = .text 0x000000000c080000, 0x0000000000010000:\
		:st = .data 0x000000000c090000, 0x0000000000010000:
libdlook.so \
		:st = .text 0x000000000bf70000, 0x0000000000010000:\
		:st = .data 0x000000000bf80000, 0x0000000000010000:
