-
Notifications
You must be signed in to change notification settings - Fork 558
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
Add libjulia 1.4.2 #1704
Add libjulia 1.4.2 #1704
Conversation
8a2277c
to
7633c5a
Compare
6f34c38
to
7caa40f
Compare
b0faabd
to
2b142ee
Compare
7d9297d
to
318e6e7
Compare
Still a build issue on Darwin (and for Linux on 32bit arm, but I am willing to skip that). Will now compared with the results for libjulia@1.5 at https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=5860&view=results to see if I can spot a hint |
318e6e7
to
b2c60ab
Compare
0875ea2
to
1bdfc08
Compare
Regarding lapack, here is the core of the issue: on macOS,
So in particular, it expects a BLAS versions which does not contain LAPACK, which is why it tries to build it. This then leads to an issue because lapack 3.5.0 (the version used by Julia 1.4.2) insists on running a few testbinaries at the end of its build&install process; which of course doesn't work in a cross compiler. In lapack 3.9.0 (used in Julia 1.5) this has been abolished. So there are several ways forward for dealing with the macOS issue
I played with option 1 and it actually worked (I think Julia just download the OpenBLAS BinaryBuilder binaries itself -- a slight inefficiency, but I don't think it matters). |
L/libjulia/common.jl
Outdated
override BB_TRIPLET_LIBGFORTRAN_CXXABI=${bb_full_target} | ||
override USE_BINARYBUILDER=1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed this in an earlier attempt to get things working, but that made no difference... Now I wonder if this might break the Julia 1.5 build? Perhaps I should adjust this PR to also update libjulia 1.5, just to verify it still works right? (could also update it to 1.5.2 -- although there really isn't much of a point, as we only care about the headers and ABI, and want to use libjulia_jll
only as a build dependency).
3b345f5
to
d998280
Compare
I am giving up on the ARM 32bit version for now. If somebody is interested in this, we can still add it later. |
3256fa1
to
0599d10
Compare
for p in platforms | ||
p["julia_version"] = "$(version.major).$(version.minor)" | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One last caveat: I've been (ab?)using the julia_version
feature @staticfloat added some time ago, to help select the correct package versions. But I just realized that this seems (?) to affect the "platform string". So perhaps this is a bad idea and I should try again without it (I can always go back to this version if I can't do it without). Thoughts?
OK to merge into this? |
L/libjulia/common.jl
Outdated
USE_SYSTEM_LAPACK=1 | ||
LIBLAPACKNAME=libopenblas | ||
# USE_SYSTEM_GMP=1 | ||
#USE_SYSTEM_BLAS=1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Doesn't make a difference on Linux and fixes macOS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then we should only do this for 1.4.2
, since it did work for 1.5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, I think this will even work with 1.5.x ?
But I've now changed it to restrict this change to macOS, where using USE_SYSTEM_BLAS=1
has the same issue as on 1.4.x: it does not use OpenBLAS, but rather the BLAS shipped with the OS by Apple, period. And that is missing lapack, so it then ends up downloading and building that (even in Julia 1.5); the only reason it works in 1.5 is that the lapack there is newer and more cross compilation friendly. But there is a download in any case. By not setting USE_SYSTEM_BLAS=1
, we get Julia on macOS to use its own BLAS binaries, which works well even on macOS and with Julia 1.4 and 1.5 equally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vchuravy does that sound plausible / acceptable? I've applied a corresponding change to this PR now.
In any case, I think it would be useful to verify this PR doesn't break Julia 1.5.x builds. I could push a commit which edits the Julia 1.5 builder, to trigger a build of that, and then later drop that commit again once 1.5 builds (again). Alternatively, I could do that in a separate PR. Thoughts?
6e4a3f3
to
5267bc1
Compare
5267bc1
to
4bcae45
Compare
No description provided.