Objects that cannot be moved are allocated in special segments, called static segments. These can be in any generation, but are in generation 2 by default.
Such objects include:
malloc,realloc andmemalign in foreign code in-malloc orin-static-area or by use ofswitch-static-allocation.Because static objects are not allowed to move, the static segments are not allowed to move. This implies that if there is a static segment in a high address the image size cannot be reduced below this size. Applications that use a lot of static area normally allocate additional static segments, and thus grow without being able to shrink again. This can be prevented by enlarging the initial static segment, which is in a low address. Use the functionlw:enlarge-static to increase the size of the initial static segment. (Use(room t) to find its current size.)