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

Make it possible to build GCC on CI #135638

Merged
merged 1 commit into from
Jan 24, 2025
Merged

Make it possible to build GCC on CI #135638

merged 1 commit into from
Jan 24, 2025

Conversation

Kobzol
Copy link
Contributor

@Kobzol Kobzol commented Jan 17, 2025

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild libgccjit on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the build-gccjit.sh script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added flex package and the ZSTD library fix were needed to make GCC build on CI.

CC @GuillaumeGomez

r? @onur-ozkan

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jan 17, 2025
@GuillaumeGomez
Copy link
Member

Thanks a lot!

src/bootstrap/src/core/build_steps/gcc.rs Outdated Show resolved Hide resolved
src/bootstrap/src/core/build_steps/gcc.rs Outdated Show resolved Hide resolved
src/bootstrap/src/core/build_steps/gcc.rs Outdated Show resolved Hide resolved
@onur-ozkan onur-ozkan added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 18, 2025
@Kobzol
Copy link
Contributor Author

Kobzol commented Jan 21, 2025

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jan 21, 2025
@rust-log-analyzer

This comment has been minimized.

This is the first step to enable download of precompiled GCC
@onur-ozkan
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Jan 21, 2025

📌 Commit 00381ea has been approved by onur-ozkan

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 21, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jan 21, 2025

Some changes occurred in src/tools/opt-dist

cc @Kobzol

@Kobzol
Copy link
Contributor Author

Kobzol commented Jan 21, 2025

Sorry, I accidentally pushed a commit to the wrong branch 🤦‍♂️ Reverted the commit back to 00381ea, which was previously approved.

@bors r=onur-ozkan

@bors
Copy link
Contributor

bors commented Jan 21, 2025

📌 Commit 00381ea has been approved by onur-ozkan

It is now in the queue for this repository.

jieyouxu added a commit to jieyouxu/rust that referenced this pull request Jan 21, 2025
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC `@GuillaumeGomez`

r? `@onur-ozkan`
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Jan 21, 2025
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC ``@GuillaumeGomez``

r? ``@onur-ozkan``
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 21, 2025
Rollup of 10 pull requests

Successful merges:

 - rust-lang#132232 (CI: build FreeBSD artifacts on FreeBSD 13.4)
 - rust-lang#135625 ([cfg_match] Document the use of expressions.)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135707 (Shorten linker output even more when `--verbose` is not present)
 - rust-lang#135750 (Add an example of using `carrying_mul_add` to write wider multiplication)
 - rust-lang#135779 (CI: free disk on linux arm runner)
 - rust-lang#135793 (Ignore `mermaid.min.js`)
 - rust-lang#135810 (Add Kobzol on vacation)
 - rust-lang#135814 (ci: use ghcr buildkit image)

r? `@ghost`
`@rustbot` modify labels: rollup
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Jan 22, 2025
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC ```@GuillaumeGomez```

r? ```@onur-ozkan```
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 22, 2025
Rollup of 8 pull requests

Successful merges:

 - rust-lang#135557 (Point at invalid utf-8 span on user's source code)
 - rust-lang#135596 (Properly note when query stack is being cut off)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135826 (Misc. `rustc_resolve` cleanups)
 - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action)
 - rust-lang#135850 (Update the `wasm-component-ld` tool)
 - rust-lang#135855 (Only assert the `Parser` size on specific arches)

r? `@ghost`
`@rustbot` modify labels: rollup
jhpratt added a commit to jhpratt/rust that referenced this pull request Jan 23, 2025
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC ````@GuillaumeGomez````

r? ````@onur-ozkan````
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 23, 2025
Rollup of 9 pull requests

Successful merges:

 - rust-lang#133138 (Target modifiers (special marked options) are recorded in metainfo)
 - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree)
 - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action)
 - rust-lang#135855 (Only assert the `Parser` size on specific arches)
 - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux)
 - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat)

r? `@ghost`
`@rustbot` modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 23, 2025
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC `````@GuillaumeGomez`````

r? `````@onur-ozkan`````
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 23, 2025
Rollup of 8 pull requests

Successful merges:

 - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree)
 - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action)
 - rust-lang#135855 (Only assert the `Parser` size on specific arches)
 - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux)
 - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 23, 2025
Rollup of 8 pull requests

Successful merges:

 - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree)
 - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action)
 - rust-lang#135855 (Only assert the `Parser` size on specific arches)
 - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux)
 - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 24, 2025
…iaskrgr

Rollup of 7 pull requests

Successful merges:

 - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates)
 - rust-lang#135638 (Make it possible to build GCC on CI)
 - rust-lang#135648 (support wasm inline assembly in `naked_asm!`)
 - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action)
 - rust-lang#135855 (Only assert the `Parser` size on specific arches)
 - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux)
 - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit da8b35a into rust-lang:master Jan 24, 2025
12 checks passed
@rustbot rustbot added this to the 1.86.0 milestone Jan 24, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jan 24, 2025
Rollup merge of rust-lang#135638 - Kobzol:gcc-ci, r=onur-ozkan

Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC ``````@GuillaumeGomez``````

r? ``````@onur-ozkan``````
@Kobzol Kobzol deleted the gcc-ci branch January 24, 2025 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants