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
History
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

README.md

back to top