Revision 12f70b4d4f3a9f749cbe74a17ea7b6247c540552 authored by Cody Tapscott on 13 June 2023, 22:17:21 UTC, committed by Cody Tapscott on 13 June 2023, 22:35:42 UTC
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 ```
1 parent 0ef854f
File | Mode | Size |
---|---|---|
.devcontainer | ||
.github | ||
base | ||
cli | ||
contrib | ||
deps | ||
doc | ||
etc | ||
src | ||
stdlib | ||
test | ||
.buildkite-external-version | -rw-r--r-- | 5 bytes |
.clang-format | -rw-r--r-- | 3.3 KB |
.clangd | -rw-r--r-- | 114 bytes |
.codecov.yml | -rw-r--r-- | 52 bytes |
.git-blame-ignore-revs | -rw-r--r-- | 371 bytes |
.gitattributes | -rw-r--r-- | 65 bytes |
.gitignore | -rw-r--r-- | 523 bytes |
.mailmap | -rw-r--r-- | 12.4 KB |
CITATION.bib | -rw-r--r-- | 513 bytes |
CITATION.cff | -rw-r--r-- | 940 bytes |
CONTRIBUTING.md | -rw-r--r-- | 23.1 KB |
HISTORY.md | -rw-r--r-- | 363.4 KB |
LICENSE.md | -rw-r--r-- | 1.3 KB |
Make.inc | -rw-r--r-- | 55.2 KB |
Makefile | -rw-r--r-- | 29.8 KB |
NEWS.md | -rw-r--r-- | 5.7 KB |
README.md | -rw-r--r-- | 7.3 KB |
THIRDPARTY.md | -rw-r--r-- | 3.8 KB |
VERSION | -rw-r--r-- | 11 bytes |
julia.spdx.json | -rw-r--r-- | 35.8 KB |
pkgimage.mk | -rw-r--r-- | 6.0 KB |
sysimage.mk | -rw-r--r-- | 4.2 KB |
Computing file changes ...