Solaris 7 64-bit Developer's Guide

Placement of Text and Data

By default, 64-bit programs are linked with a starting address of 0x100000000. The whole program will be above 4 gigabytes, including its text, data, heap, stack, and shared libraries. This helps insure that 64-bit programs are correct by making it so the program will fault in the least significant 4 gigabytes of its address space if it truncates any of its pointers.

While 64-bit programs are linked above 4 gigabytes, it is still possible to link them below 4 gigabytes by using a linker mapfile and the -M option to the compiler or linker. A linker mapfile for linking a 64-bit SPARC program below 4 gigabytes is provided in /usr/lib/ld/sparcv9/map.below4G. See the ld(1) linker man page for more information.