JLJITLinkMemoryManager: Disable when CodeModel != Large (#60245)
Under normal circumstances we never deallocate JITted code, and JITLink
will never abandon in-flight allocations. Unfortunately, on platforms
where we use a code model that require relocations to not be too large,
the linker can bail out if an allocation gets placed somewhere unlucky.
[1]
This change forces the use of MapperJITLinkMemoryManager on the
platforms where we use a non-large code model so that this can't happen,
and removes the jl_unreachable() calls so that the JITLink error gets
reported nicely instead of failing in our code.
Since every JITLink platform currently uses a non-large code model, we
should no longer use JLJITLinkMemoryManager by default anywhere (except
when it has been enabled on a RTDyLD platform, like when sanitizers are
enabled). It is still necessary to have this change for #60031 to go
forward, else the previously RTDyLD platforms run out of memory.
Thanks to @IanButterworth and @giordano again.
[1]
https://buildkite.com/julialang/julia-master/builds/52316/steps/canvas?sid=019aba85-6699-45e3-b173-55f1420063ca#019aba85-66c0-40f1-80ba-8c5b4da56dba/934-1268