i#2558: relax client reachability and vmm base location #2565
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a new option -reachable_client, on by default. When turned off,
client libraries being within 32-bit-displacement reachability of the code
cache is relaxed, both the library load location and the fatal error on
violation. This is particularly useful for statically-linked clients whose
location is difficult to change.
Includes changes to vmm allocation required to make this work for
statically-linked clients:
allocation, except for -heap_in_lower_4GB which has no fallback.
-vm_allow_not_at_base, it allows allocating away from the app.
for a lower chance of impacting the brk.
Adds a test of a static client with a large heap where the default -vm_base
or being near the app fail.
Fixes #2558