HP-UX 11i Release Notes (December 2000)

Process, Threads, Memory, and Kernel Parameters
Large Private Data Space (new)
Chapter 8158
Processes that enable a private 4th quadrant (q4p processes), will have
no address space available for shared objects. This means that the
process will not be able to use System V shared memory, shared mapped
files, etc. Shared libraries will still work, although the kernel will map
them private. Note that a q4p process implies that the 3rd quadrant is
private also, i.e. the kernel will not execute a process that only enables a
private 4th quadrant.
The data segment cannot be extended past the beginning of the 4th
quadrant, due to the fact that the system call gateway page has to
remain at address 0xC0000000 for binary compatibility reasons.
Therefore, the brk() and sbrk() system calls will only allow the data
segment to be expanded up to that address. In order to take advantage
of private address space in the 4th quadrant, memory will need to be
allocated using the mmap() system call with the MAP_PRIVATE option.
malloc() has been modified to do this automatically. No re-link will be
necessary to take advantage of the new malloc() for a program that
uses a shared version of the C library. A program that was linked with a
non-shared library version of the C library, however, will need to be
re-linked.
These changes have no compatibility impacts if the feature is not
enabled.
This feature can only be enabled for 32-bit programs running on the
64-bit version of HP-UX. The 32-bit version of HP-UX will silently ignore
the request for a private 3rd or 4th quadrant