-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[libc++] Add a CI job for the LLDB data formatters #65174
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
This patch adds a CI job running the LLDB data formatters in the libc++ CI. This should avoid breaking the LLDB data formatters when e.g. the layout of libc++ data structures is changed. This was originally opened as https://reviews.llvm.org/D133621.
Note that this still needs some work. I am cleaning up my review queue from Phabricator. |
This is an awesome improvement! |
-DLLVM_ENABLE_PROJECTS='llvm;clang;lldb' \ | ||
-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi' | ||
|
||
${NINJA} -C "${BUILD_DIR}" check-lldb-api-functionalities-data-formatter-data-formatter-stl-libcxx |
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.
Does this require building Clang?
If so, I don't think we can add this as a pre-commit check.
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.
Since we already build clang in the bootstrap build I think it makes sense to test it in that CI job. Or at least share the build artifacts of the bootstrap build and reuse it. This is similar what the clang CI does.
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.
Yup that would build clang. Agree with @mordante , re-using the already built clang on the machine is what we do for our LLDB CI too.
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.
Can you link to what you folks do there? Do you simply avoid adding clang
to LLVM_ENABLE_PROJECTS
? It's easy for me to upload the just-built Clang artifacts to Buildkite but I am not sure what I should do to reuse them from the LLDB build.
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 think using a "standalone" build of LLDB would make sense here? Correct me if I'm wrong @adrian-prantl @JDevlieghere
Here is how we configure it for the standalone bot: https://github.com/llvm/llvm-zorg/blob/3ecc17d4b9a6fc6e81d5d2265a4e4088267bd800/zorg/jenkins/monorepo_build.py#L632-L692
So if we have a clang build already, we can just point the LLDB build to those artifacts as follows:
'-DLLVM_DIR={}'.format(llvm_dir),
'-DClang_DIR={}'.format(clang_dir),
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.
What I meant was to reuse the build of clang in our bootstrapping build.
Any idea what's left to do here? |
It looks like according to https://buildkite.com/llvm-project/libcxx-ci/builds/29381#018a5138-767f-4472-9fcb-c20da396c5c2, we are missing
How do you generally install it? I could update our Docker image with it. |
As discussed with @ldionne I'll pick this up. At the moment the work is blocked by some maintenance work on the CI. |
I've created a new patch (#88312) for this feature, using the direction I suggested. |
Dropping in favour of #88312 , thanks a lot Mark! |
This patch adds a CI job running the LLDB data formatters in the libc++ CI. This should avoid breaking the LLDB data formatters when e.g. the layout of libc++ data structures is changed.
This was originally opened as https://reviews.llvm.org/D133621.