Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore some ABI compatibility with Julia 1.6 #40851

Merged
merged 1 commit into from
May 25, 2021

Conversation

fingolfin
Copy link
Contributor

In Julia <= 1.6, the C API function jl_init and jl_init_with_image were
exported on the ABI level under the names jl_init__threading and
jl_init_with_image__threading. This was changed during development of Julia
1.7, but unfortunately that broke ABI compatibility with binaries build
against Julia <= 1.6.

Add back and export two simple wrapper functions to restore this aspect of ABI
compatibility. This way, people gain some time to migrate existing code bases,
and have an easier time supporting both released Julia versions and nightly
Julia builds.

Once Julia 1.7 is out, which exports both the old and new symbol names, these
wrappers could be removed for Julia 1.8 development (or they could also be
left in, given that they don't seem to cost us anything?)

Resolves #40730

Resolves oscar-system/GAP.jl#646

Might help (partially?) with issue #40246.

In Julia <= 1.6, the C API function `jl_init` and `jl_init_with_image` were
exported on the ABI level under the names `jl_init__threading` and
`jl_init_with_image__threading`. This was changed during development of Julia
1.7, but unfortunately that broke ABI compatibility with binaries build
against Julia <= 1.6.

Add back and export two simple wrapper functions to restore this aspect of ABI
compatibility. This way, people gain some time to migrate existing code bases,
and have an easier time supporting both released Julia versions and nightly
Julia builds.

Once Julia 1.7 is out, which exports both the old and new symbol names, these
wrappers could be removed for Julia 1.8 development (or they could also be
left in, given that they don't seem to cost us anything?)
@JeffBezanson JeffBezanson merged commit 829d7e0 into JuliaLang:master May 25, 2021
shirodkara pushed a commit to shirodkara/julia that referenced this pull request Jun 9, 2021
In Julia <= 1.6, the C API function `jl_init` and `jl_init_with_image` were
exported on the ABI level under the names `jl_init__threading` and
`jl_init_with_image__threading`. This was changed during development of Julia
1.7, but unfortunately that broke ABI compatibility with binaries build
against Julia <= 1.6.

Add back and export two simple wrapper functions to restore this aspect of ABI
compatibility.
@alexlenail
Copy link

Is it possible to install a version of julia with this patch?

@KristofferC KristofferC added backport 1.6 Change should be backported to release-1.6 and removed backport 1.6 Change should be backported to release-1.6 labels Jun 16, 2021
johanmon pushed a commit to johanmon/julia that referenced this pull request Jul 5, 2021
In Julia <= 1.6, the C API function `jl_init` and `jl_init_with_image` were
exported on the ABI level under the names `jl_init__threading` and
`jl_init_with_image__threading`. This was changed during development of Julia
1.7, but unfortunately that broke ABI compatibility with binaries build
against Julia <= 1.6.

Add back and export two simple wrapper functions to restore this aspect of ABI
compatibility.
@fingolfin fingolfin deleted the mh/jl_init__threading branch July 7, 2021 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ABI breakage caused by renaming of jl_init__threading to jl_init Broken on recent master
4 participants