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 PGO on MacOS for 2.0.0 final #13983

Closed
mtreinish opened this issue Mar 10, 2025 · 3 comments
Closed

Fix PGO on MacOS for 2.0.0 final #13983

mtreinish opened this issue Mar 10, 2025 · 3 comments
Assignees
Labels
Milestone

Comments

@mtreinish
Copy link
Member

What should we add?

In the 2.0.0rc1 release jobs building on macOS with PGO was failing with linker errors. This seems to be caused by something related to #13934 although the exact cause is unknown still. For 2.0.0rc1 to unblock the release we disabled pgo on macos temporarily, but before we tag the final release we should understand the root cause and try to fix it so we can build with PGO on macOS for the final release.

@mtreinish mtreinish added this to the 2.0.0 milestone Mar 10, 2025
@mtreinish
Copy link
Member Author

mtreinish commented Mar 10, 2025

We also had failures on the aarch64 linux builds which look to be hitting llvm/llvm-project#57501

@ElePT found similar issues reported on rust: rust-lang/rust#117220 and rust-lang/rust#115344 which should hopefully be fixed in a future rust release. We're using rust 1.79 for aarch64 because the llvm tools from rustup didn't work on the latest rust releases but if upgrading (probably to rust 1.86 when it's released) will fix this we should find a path to do that.

@mtreinish
Copy link
Member Author

@Cryoris was able to confirm that Rust 1.85 seems to fix the llvm failure we hit on aarch64 linux builds. He was able to reproduce the failure on macOS with 1.79 and then using 1.85 fixed it. So if we can get a working llvm tools build on rust 1.85 that should fix the issue there with the combined LTO and PGO builds.

mtreinish added a commit to mtreinish/qiskit-core that referenced this issue Mar 13, 2025
This commit attempts to build the aarch64 linux wheels with rust 1.83.
When we made aarch64 linux a tier 1 supported platform Qiskit#13737 there
were packaging issues with the official distrubtions for Rust 1.85 and
1.84 on the platform which were preventing PGO builds from succeeding.
At the time we we determined that our MSRV of 1.79 was able to build
successfully. However, during the 2.0.0rc1 pre-release the wheel build
job failed because of reported LLVM bug when combining LTO and PGO which
we do for the release jobs. Local debugging determined these errors
should be been fixed if built with Rust 1.85. Since we know we're not
able to build with Rust 1.85 or 1.84 this commit tries building with
1.83 to see if this can work. If this does not work, follow up commits
will walk backwards to see if 1.82, 1.81, or 1.80 can build successfully
with LTO+PGO.

Related to: Qiskit#13983
@mtreinish
Copy link
Member Author

Fixed by: #13992

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants