-
Notifications
You must be signed in to change notification settings - Fork 146
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
Build and include C++ standard library #1603
base: main
Are you sure you want to change the base?
Conversation
…ake issue..." This reverts commit c54b607.
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
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 these changes touch so many parts of the build process, I would suggest we consider doing some additional testing on top of the standard per-PR CI testing. Here's what I was thinking (below). Maybe you have already done some of these.
- Go through the full deployment and publishing pipeline with this branch to verify everything works across all the GPU backends, perhaps creating as experimental branch help facilitate the process.
- Perform some sort of throughput testing to verify that our throughput doesn't significantly change.
- Verify that this is compatible with PR Fix LLVM aarch64 relocation overflow #1444 (speaking of which - which PR do you think should be merged first? 1444 or this one?)
- Probably some standalone developer testing on Gorby.
- Potentially some hardware provider testing.
This PR changes the CUDA-Q assets to build and use the LLVM C++ standard library (libc++) instead of the GNU C++ standard library (libstdc++). The assets are currently only used to build the installer; the Docker image and Python wheels are built as before.
RFC: #1819
There are a bunch of edits I needed to make across the board to make this work, including
include(HandleLLVMOptions)
from top-level CMakeLists.txt; This handles options for the LLVM build and should only be included when directly referencing the MLIR or LLVM headers. In particular, this potentially adds C++ compiler and linker flags, that are plain wrong for some projects in the build (e.g. for the CUDA host compiler)Other changes made:
A couple of other comments:
Pipelines: