Uh oh!
There was an error while loading. Please reload this page.
ci: Move dist-aarch64-linux to an aarch64 runner - #135262
Conversation
528f263 to
7d9903cComparemrkajetanp
commented
Jan 8, 2025
Same as before, plus a couple small changes to account for the LTO+clang workarounds that were merged in the meantime |
tgross35
commented
Jan 9, 2025
@bors try |
…=<try> ci: Move dist-aarch64-linux to an aarch64 runner Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on. r? `@Kobzol` Reland of rust-lang#133809 now that the higher page sizes are fixed. try-job: dist-aarch64-linux try-job: dist-x86_64-linux try-job: dist-i686-linux
bors
commented
Jan 9, 2025
bors
commented
Jan 9, 2025
💥 Test timed out |
mrkajetanp
commented
Jan 9, 2025
Do we need a longer timeout here again? |
Kobzol
commented
Jan 9, 2025
We probably turned that one to a free runner recently-ish, so it times out now. With the cache primed, it should be fine. @bors try |
bors
commented
Jan 9, 2025
…=<try> ci: Move dist-aarch64-linux to an aarch64 runner Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on. r? `@Kobzol` Reland of rust-lang#133809 now that the higher page sizes are fixed. try-job: dist-aarch64-linux try-job: dist-x86_64-linux try-job: dist-i686-linux
bors
commented
Jan 9, 2025
☔ The latest upstream changes (presumably #135286) made this pull request unmergeable. Please resolve the merge conflicts. |
bors
commented
Jan 9, 2025
💥 Test timed out |
Ahh I see, I think we need to apply the same fix as in #134690 to i686 as well. But then it already seems like it was tested there when that PR was merged? build-clang.sh is failing with some errors mentioning Gold and that's causing the timeout in any case. |
There was a problem hiding this comment.
There is the path src/ci/docker/host-*/disabled for jobs that are still useful but don't run in CI. I'm not sure what the policy is, but maybe it would be good to move this there instead of removing it? I would find it occasionally useful for verifying aarch64 builds on x86 machines. (non-dist would be better yet, but leaving the dist job around still seems convenient).
There was a problem hiding this comment.
Jobs in the disabled directory rot fast, and they can be restored from git history, so I personally don't see a lot of value in this. You can always copy-paste the contents locally to test it.
| -DLLVM_INCLUDE_EXAMPLES=OFF \ | ||
| -DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt;bolt" \ | ||
| -DLLVM_BINUTILS_INCDIR="/rustroot/lib/gcc/x86_64-pc-linux-gnu/$GCC_VERSION/plugin/include/" \ | ||
| -DLLVM_BINUTILS_INCDIR="/rustroot/lib/gcc/$GCC_BUILD_TARGET/$GCC_VERSION/plugin/include/" \ |
There was a problem hiding this comment.
It seems to me that this is the only change that happened to the 32-bit runner. I think that the problem is that only the 64-bit version of binutils is installed in the CentOS image:
2025-01-09T14:25:36.9324939Z #13 5.216 ---> Package binutils.x86_64 0:2.27-44.base.el7 will be updated
2025-01-09T14:25:36.9325811Z #13 5.217 ---> Package binutils.x86_64 0:2.27-44.base.el7_9.1 will be an update
So either this should be reverted (keep it hardcoded for 64-bit), or the 32-bit image should install also the 32-bit version of binutils.
There was a problem hiding this comment.
I'm fairly sure the problem is here
-DLLVM_BINUTILS_INCDIR="/rustroot/lib/gcc/$GCC_BUILD_TARGET/$GCC_VERSION/plugin/include/" \
Because GCC_BUILD_TARGET will be i686 for the i686 job but the plugin/include will end up under x86_64 because that's where the job is running. I'm running a local build to confirm atm
There was a problem hiding this comment.
I don't think that the cause is necessarily that the host is x64, rather than just the binutils package is installed only in the x64 version, not the i686 version. So downloading a binutils.i686 CentOS package should hopefully fix it. If not, I would just hardcode the previous x64 path.
7d9903c to
1ee0062Comparerustbot
commented
Jan 10, 2025
Some changes occurred in src/tools/cargo cc @ehuss |
mrkajetanp
commented
Jan 10, 2025
ah sorry about that |
Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on.
1ee0062 to
307480aCompareKobzol
commented
Jan 10, 2025
It seems like you did both, i.e. install 32-bit binutils, but use the x64 path? :D Anyway, let's see if it helped. @bors try |
bors
commented
Jan 10, 2025
…=<try> ci: Move dist-aarch64-linux to an aarch64 runner Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on. r? `@Kobzol` Reland of rust-lang#133809 now that the higher page sizes are fixed. try-job: dist-aarch64-linux try-job: dist-x86_64-linux try-job: dist-i686-linux
Well I figured the builds take so long to run that I might as well try the more conservative approach :) I think if it needed the i686 binutils it probably would have failed sooner, but it failing on the linking stage of building clang suggests that it's the linker plugin include that was messed up |
bors
commented
Jan 10, 2025
☀️ Try build successful - checks-actions |
…=Kobzol ci: Move dist-aarch64-linux to an aarch64 runner Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on. r? `@Kobzol` Reland of rust-lang#133809 now that the higher page sizes are fixed. try-job: dist-aarch64-linux try-job: dist-x86_64-linux try-job: dist-i686-linux
bors
commented
Jan 11, 2025
rust-log-analyzer
commented
Jan 11, 2025
bors
commented
Jan 11, 2025
💔 Test failed - checks-actions |
mrkajetanp
commented
Jan 11, 2025
Huh, I don' think this is related to the PR? But then I know nothing about windows, so if someone who does could chime in that'd be great.. |
Kobzol
commented
Jan 12, 2025
Yeah, that's sadly a known flaky failure. @bors retry |
bors
commented
Jan 12, 2025
…=Kobzol ci: Move dist-aarch64-linux to an aarch64 runner Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on. r? `@Kobzol` Reland of rust-lang#133809 now that the higher page sizes are fixed. try-job: dist-aarch64-linux try-job: dist-x86_64-linux try-job: dist-i686-linux
rust-log-analyzer
commented
Jan 12, 2025
bors
commented
Jan 12, 2025
💔 Test failed - checks-actions |
mrkajetanp
commented
Jan 12, 2025
It seems the CI gods are not with us tonight |
Kobzol
commented
Jan 12, 2025
@bors retry |
bors
commented
Jan 12, 2025
bors
commented
Jan 12, 2025
☀️ Test successful - checks-actions |
rust-timer
commented
Jan 12, 2025
Finished benchmarking commit (c0f6a1c): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesResults (secondary -3.0%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 761.975s -> 761.573s (-0.05%) |
Move the dist-aarch64-linux CI job to an aarch64 runner instead of cross-compiling it from an x86 one. This will make it possible to perform optimisations such as LTO, PGO and BOLT later on.
r? @Kobzol
Reland of #133809 now that the higher page sizes are fixed.
try-job: dist-aarch64-linux
try-job: dist-x86_64-linux
try-job: dist-i686-linux