-
Notifications
You must be signed in to change notification settings - Fork 568
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
libjulia 1.5: link LibOSXUnwind dynamically #2190
libjulia 1.5: link LibOSXUnwind dynamically #2190
Conversation
3a91ce1
to
e735479
Compare
@benlorenz gave pointed out the crucial bits; here is my summary: apparently before Julia 1.5.1 (so including Julia 1.5.0), libosxunwind was always linked statically. Julia 1.5.1 and later link it dynamically. For that, However, @staticfloat rebuilt it in #2038 to add This would have broken building Julia 1.5, but Julia actually locks the build version of the JLLs it uses, so it kept using 0.0.6+0. Unfortunately, nothing else has the luxury of ignoring the registry and forcing a specific build version, so now we can't build libjulia_jll because we can't install a version of LibOSXUnwind_jll 0.0.6:
I think to fix this, at the very least the julia compat bound of I think the aarch64 binary only causes a warning in Julia 1.5 (not a hard error), but if I am wrong about that, also 0.0.6+1 should be yanked, or better a new 0.0.6+2 be released (so that it still uses |
LibOSXUnwind_jll 0.0.6 is actually compatible with (and required by) Julia >= 1.5.1. Since the Julia build system pins the JLL to 0.0.6+0 and doesn't use the registry, this isn't obvious normally, but the incorrect compat entry prevents linking libjulia_jll 1.5 and derived JLLs correctly against libosxunwind. For details see JuliaPackaging/Yggdrasil#2190 (comment)
e735479
to
caa3b2c
Compare
LibOSXUnwind_jll 0.0.6 is actually compatible with (and required by) Julia >= 1.5.1. Since the Julia build system pins the JLL to 0.0.6+0 and doesn't use the registry, this isn't obvious normally, but the incorrect compat entry prevents linking libjulia_jll 1.5 and derived JLLs correctly against libosxunwind. For details see JuliaPackaging/Yggdrasil#2190 (comment)
LibOSXUnwind_jll 0.0.6 is actually compatible with (and required by) Julia >= 1.5.1. Since the Julia build system pins the JLL to 0.0.6+0 and doesn't use the registry, this isn't obvious normally, but the incorrect compat entry prevents linking libjulia_jll 1.5 and derived JLLs correctly against libosxunwind. For details see JuliaPackaging/Yggdrasil#2190 (comment)
799f886
to
63da26d
Compare
Hrm:
That's weird -- locally I can install 0.0.6 just fine in both Julia 1.5.3 and 1.6. Why would it fail like that? Could it be looking at an outdated version of the registry?! |
This still doesn't build here, but it does build using BB on my own server, where it successfully picks up LibOSXUnwind_jll v0.0.6+2. |
a02aa28
to
da88ef8
Compare
da88ef8
to
bcaf9e2
Compare
Works now thanks to a hint by @benlorenz that I need to adjust the |
Why do you need to change the |
I had to change it so that it would pick up the correct LibOSXUnwind_jll |
@staticfloat to elaborate: Julia >= 1.5.1 wants to dynamically link against We've since fixed LibOSXUnwind_jll by (a) yanking 0.0.6+1 and (b) adding a 0.0.6+2 which removes the aarch64 binary again, and changes the julia_compat to 1.5.1; the idea being that the aarch64 variant can go into LibOSXUnwind_jll 0.0.7. However, that still didn't work, because That leaves the following options (at least that's the ones I can think of), not mutually exclusive:
Oh, and I guess for the aarch64 effort we may need LibOSXUnwind_jll 0.0.7 with aarch64 supported added back in (and then change Julia master to use that?) -- see PR #2200 for a start on that. |
Ahh, I see the problem. We take the I think it's "okay" to specify "1.5.3" as the In general, artifact platform tags should be used when something about the host determines which binary you want installed, not whether a binary should be installed or not. So the |
This will only work from Julia 1.6 onwards, right? If so, I think it's OK to merge this, as it will allow us to rebuild the libcxxwrap-julia binaries. |
Yeah, I am aware that Which is why I think it ought to be OK, here. Of course in the future, we will want to correctly use |
Yep, it all sounds good. So are we agreed on the path forward? |
OK for me! |
@staticfloat sounds good to me, but I can only provide the parts, not merge them :-) |
WIP trying to fix the issue on macOS reported here by @barche: on macOS, we get this error:
This is because libosxunwind is linked statically but it really needs to be linked dynamically.