Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lookup libraries in
libjulia-*
before jl_exe_handle
We do not use `dlvsym` to separate the symbols between multiple copies of libjulia, instead preferring to resolve symbols directly against the appropriate internal library handle. During bootstrapping, many internal symbols (e.g. `jl_fl_parse`) are available in the global EXE namespace, so we need to adapt our search order to resolve symbols in internal libraries first. With this fix, no sysimage symbols are resolved to `jl_exe_handle` (which is generally broken in Julia-in-Julia scenarios): ``` $ cat objdump_after.txt | grep libjulia_internal_handle | wc 1131 14703 145899 $ cat objdump_after.txt | grep jl_exe_handle | wc 0 0 0 ``` versus before: ``` $ cat objdump_before.txt | grep libjulia_internal_handle | wc 577 7501 74433 $ cat objdump_before.txt | grep jl_exe_handle | wc 554 7202 63710 ```
- Loading branch information