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

Fix build from source on alpine linux #26358

Merged
merged 6 commits into from
Apr 1, 2018

Conversation

tkelman
Copy link
Contributor

@tkelman tkelman commented Mar 7, 2018

@quinnj
Copy link
Member

quinnj commented Mar 7, 2018

Nice. do you have docker images somewhere based on alpine working?

@ararslan ararslan added building Build system, or building Julia or its dependencies system:linux Affects only Linux labels Mar 7, 2018
@ararslan
Copy link
Member

ararslan commented Mar 7, 2018

If there's an appropriate Docker image available we should be able to add Alpine to our CI testing on CircleCI, which would arguably be more valuable than having redundant glibc Linux builds.

@tkelman
Copy link
Contributor Author

tkelman commented Mar 7, 2018

Something like https://github.com/tkelman/julia-alpine/blob/master/Dockerfile seems to be working so far. Can collapse that down, do a make install and remove build-only deps once it's done if you want a small image for deployment purposes.

@ararslan
Copy link
Member

ararslan commented Mar 8, 2018

Good to merge?

@JeffBezanson
Copy link
Member

Cool. Is there a released version of llvm/openblas including these changes, that we're likely to upgrade to?

@tkelman
Copy link
Contributor Author

tkelman commented Mar 8, 2018

See the makefile comments - llvm 6.0.0 will include llvm-mirror/llvm@ae8900a, llvm 5.0.0 should already include llvm-mirror/llvm@32028c8, openblas 0.2.21 was supposed to be a hotfix that already included OpenMathLib/OpenBLAS#1257 (and worth noting that upstream tests against alpine on their dev branch CI now) but ref OpenMathLib/OpenBLAS#1258, xianyi is kinda MIA and no one knows what the exact release plan is there.

I'm also somewhat curious whether this also works on a non-edge release of alpine but haven't tested that yet.

@ViralBShah
Copy link
Member

Yes the OpenBLAS release schedule is unclear. I believe we need another matvec perf fix that @simonbyrne reported too - but digressing here. Do we need to run Package Evaluator on this, since these are LLVM patches that are late in the release cycle?

@tkelman
Copy link
Contributor Author

tkelman commented Mar 8, 2018

The large patch should be an llvm-internal enum renaming rather than externally visible, but maybe clang or llvm.jl are worth testing to be sure this doesn't cause any problems there. It's also entirely possible that I missed something or made a mistake when rebasing those, so might also be good to verify it's not noticeable on nanosoldier if that's working properly right now

@ararslan
Copy link
Member

ararslan commented Mar 8, 2018

cc @maleadt for LLVM.jl

@nanosoldier runbenchmarks(ALL, vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan

@maleadt
Copy link
Member

maleadt commented Mar 9, 2018

Works fine with (what's currently covered by) LLVM.jl.

@ViralBShah
Copy link
Member

ViralBShah commented Mar 10, 2018

Seems like there is quite a bit of regression on some of the perf tests. Should we wait to see how the llvm 6 stuff pans out and then do what's necessary? I suspect we could do the openblas stuff right away.

@KristofferC
Copy link
Member

I am quite sure none of those "regressions" are from this PR. They are very spread and most of the groups with regressions also have improvements, just showing that they are noisy.

@nanosoldier runbenchmarks(ALL, vs=":master")

@ararslan
Copy link
Member

@nanosoldier runbenchmarks(ALL, vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan

@ararslan
Copy link
Member

Bump. Anything else needed here?

@ViralBShah
Copy link
Member

Should we wait to see the situation on llvm 6 before deciding here?

@tkelman
Copy link
Contributor Author

tkelman commented Mar 16, 2018

Why? LLVM 6 almost certainly will break more than this would.

Copy link
Member

@vchuravy vchuravy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@KristofferC
Copy link
Member

KristofferC commented Mar 16, 2018

Rerunning CI because it was 9 days ago last time.

@KristofferC KristofferC reopened this Mar 16, 2018
@ararslan
Copy link
Member

Needs a rebase now but should be good to go after that.

@ararslan ararslan merged commit 8131c75 into JuliaLang:master Apr 1, 2018
@tkelman tkelman deleted the tk/fix-alpine-build branch April 2, 2018 17:46
@vchuravy
Copy link
Member

vchuravy commented Apr 5, 2018

Patch: llvm-D28476-musl-targetlibraryinfo_3.9 breaks compilation with BUILD_LLVM_CLANG=1

/home/vchuravy/src/julia/deps/srccache/llvm-3.9.1/tools/clang/lib/CodeGen/BackendUtil.cpp:256:14: error: ‘Func’ is not a member of ‘llvm::LibFunc’
     LibFunc::Func F;
              ^~~~
/home/vchuravy/src/julia/deps/srccache/llvm-3.9.1/tools/clang/lib/CodeGen/BackendUtil.cpp:258:38: error: ‘F’ was not declared in this scope
       if (TLII->getLibFunc(FuncName, F))

@ViralBShah ViralBShah added the compiler:musl Support for musl linked binaries on linux instead of glibc label Jun 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies compiler:musl Support for musl linked binaries on linux instead of glibc system:linux Affects only Linux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants