-
Notifications
You must be signed in to change notification settings - Fork 114
Upgrade mariner images to LLVM 16 #840
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
Conversation
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.
crossdeps-builder
has extra contents (mostly sources and intermediate build outputs) that shouldn't be included in the final image, so we use it to build llvm, then only copy what we need out of it (llvm binaries, compiler-rt profile shared lib). crossdeps-llvm
is a shared base image for the other cross-ARCH
images, since it has the llvm cross-compiler. It is only one layer on top of crossdeps
. crossdeps
is used as the base image for both crossdeps-llvm
and crossdeps-builder
.
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.
Looks like src/cbl-mariner/2.0/cross/arm-alpine/Dockerfile is still referencing cbl-mariner-2.0-crossdeps-arm-local
which should be updated to cbl-mariner-2.0-crossdeps-llvm-local
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.
crossdeps-builder
has extra contents (mostly sources and intermediate build outputs) that shouldn't be included in the final image, so we use it to build llvm, then only copy what we need out of it (llvm binaries, compiler-rt profile shared lib). crossdeps-llvm
is a shared base image for the other cross-ARCH
images, since it has the llvm cross-compiler. It is only one layer on top of crossdeps
. crossdeps
is used as the base image for both crossdeps-llvm
and crossdeps-builder
.
Oops, I thought I had fixed that. Thanks. |
@agocke PTAL |
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.
LGTM, thank you
@mthalman please merge when you have a chance. |
This reverts commit ac313ee.
As per title, upgrades LLVM from 12.0.1 to 16.0.0. Because this version isn't available in the mariner repos, we build it from source on all platforms (whereas we used to get 12.0.1 from the repos for the amd64 image).
LLVM 16 is the first release that has started to use C++17 (previous releases were using C++14). At first this was causing the compiler-rt builds to fail, because not all C++17 features were available in the libstdc++ version that is installed in the rootfs (and no version supporting these features is available on xenial without using pinned packages from later releases). However, as long as we are careful to build only the compiler-rt library we need (profile), no C++ is required.
Contributes to dotnet/runtime#83428.