about summary refs log tree commit diff
path: root/library/compiler-builtins/.github
AgeCommit message (Collapse)AuthorLines
2025-08-07Start runnning tests for aarch64-pc-windows-msvcTrevor Gross-2/+1
This target is currently build-only. Switch to the windows-11-arm runner, which allows us to start running tests.
2025-07-30ci: Set pipefail before running ci-utilTrevor Gross-1/+3
Currently, a failure in `ci-util.py` does not cause the job to fail because the pipe eats the failure status . Set pipefail to fix this. Fixes: ff2cc0e38e3e ("ci: Don't print output twice in `ci-util`")
2025-07-30ci: Don't print output twice in `ci-util`Trevor Gross-1/+1
Use `tee` rather than printing to both stdout and stderr.
2025-07-29ci: Simplify tests for verbatim pathsTrevor Gross-4/+0
Rather than setting an environment variable in the workflow job based on whether or not the environment is non-MinGW Windows, we can just check this in the ci script. This was originally added in b0f19660f0 ("Add tests for UNC paths on windows builds") and its followup commits.
2025-07-29cleanup: Trim trailing whitespaceTrevor Gross-2/+2
2025-07-29Switch to using a GH app for authenticating sync PRsJakub Beránek-2/+3
So there will no longer be the need to close and reopen sync PRs in order for CI to run.
2025-07-23ci: Add native PowerPC64LE and s390x jobsTrevor Gross-0/+22
We now have access to native runners, so make use of them for these architectures. The existing ppc64le Docker job is kept for now.
2025-07-21ci: Switch to nightly rustfmtTrevor Gross-2/+2
We are getting warnings in CI about unsupported features. There isn't any reason to use stable rustfmt so switch the channel here.
2025-07-12Add CI workflow for automatically performing subtree sync pullsJakub Beránek-0/+23
This CI workflow will run the https://github.com/rust-lang/josh-sync tool on Mondays and Thursdays. It will try to do a pull (sync stdarch changes from rust-lang/rust into this repository). When it runs, three things can happen: - There are no rustc changes to be pulled, the bot does nothing. - There are some new changes to be pulled. In that case, the bot will either open or update an existing PR titled "Rustc pull update" on this repository with the changes. After the PR is merged, we should ideally do the opposite sync (push) manually. - The pull fails (usually because of a merge conflict), or the bot determines that a pull PR has been opened for more than a week without being merged. In that case, it will post a ping to https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/compiler-builtins.20subtree.20sync.20automation/with/528482375.
2025-07-04Test building custom targets and resolve an issue probing `rustc`Trevor Gross-0/+20
The `rustc` probe done in our build scripts needs to pass `--target` to get the correct configuration, which usually comes from the `TARGET` environment variable. However, for targets specified via a `target.json` file, `TARGET` gets set to the file name without an extension or path. `rustc` will check a search path to attempt to locate the file, but this is likely to fail since the directory where Cargo invokes build scripts (and hence where those scripts invoke `rustc`) might not have any relation to the JSON spec file. Resolve this for now by leaving `f16` and `f128` disabled if the `rustc` command fails. Result of the discussion at CARGO-14208 may eventually provide a better solution. A CI test is also added since custom JSON files are an edge case that could fail in other ways. I verified this fails without the fix here. The JSON file is the output for `thumbv7em-none-eabi`, just renamed so `rustc` doesn't identify it.
2025-06-04Replace the musl submodule with a download scriptTrevor Gross-12/+10
The submodule was causing issues in rust-lang/rust, so eliminiate it here. `build-musl` is also removed from `libm-test`'s default features so the crate doesn't need to be built by default.
2025-05-29ci: Allow for multiple icount benchmarks in the same runTrevor Gross-2/+10
We don't actually need this for now, but eventually it would be nice to run icount benchmarks on multiple targets. Start tagging artifact names with the architecture, and allow passing `--tag` to `ci-util.py` in order to retrieve the correct one.
2025-05-29Increase the benchmark rustc version to 2025-05-28Trevor Gross-1/+1
We may soon want to use some new nightly features in `compiler-builtins` and `libm`, specifically `cfg_target_has_reliable_f16_f128` which was added in the past few weeks. This will mean we need a newer toolchain for benchmarks to continue building. Bump to the current latest nightly so we are not blocked on this down the line.
2025-05-29ci: Allow concurrency outside of pull requestsTrevor Gross-1/+1
When multiple merges to `master` happen before a CI run completes, the in-progress job is getting canceled. Fix this by using the commit sha for the group key if a pull request number is not available, rather than `github.ref` (which is always `refs/head/master` after merge). This should prevent jobs running on previous commits from getting cancelled, while still ensuring there is only ever one active run per pull request.
2025-05-29Remove the now-unneeded llvm-tools-previewTrevor Gross-1/+0
Since a working `nm` is no longer needed as part of CI, the rustup component can be removed.
2025-04-21ci: Fix extensive testsTrevor Gross-16/+1
Move this to a script and ensure only `libm-test` gets built to avoid default feature issues with `compiler-builtins`.
2025-04-20ci: Clean up workflow file and docker scriptTrevor Gross-6/+5
2025-04-20ci: Add a timeout for all jobsTrevor Gross-0/+3
2025-04-20ci: Skip testing libm in PRs if it did not changeTrevor Gross-23/+26
Many contributions to compiler-builtins don't have any need to touch libm, and could get by with the few minutes of CI for compiler-builtins rather than the ~30 minutes for libm. We already have some scripts that handle changed file detection, so expand its use to skip libm CI if it doesn't need to run.
2025-04-20ci: Enable testing of `libm` cratesTrevor Gross-1/+11
Update `run.sh` to start testing `libm`. Currently this is somewhat inefficient because `builtins-test` gets run more than once on some targets; this can be cleaned up later.
2025-04-20ci: Add extensive tests from rust-lang/libmTrevor Gross-0/+68
2025-04-20ci: Add a libm MSRV checkTrevor Gross-0/+21
Add the job from rust-lang/libm
2025-04-20Enable icount benchmarks in CITrevor Gross-2/+53
2025-04-19Fix the release-plz jobTrevor Gross-7/+2
2025-04-18ci: Make CI configuration more similar to `libm`Trevor Gross-93/+80
Apply a handful of changes to reduce the diff between the two: * Cancel running jobs on new pushes * Enable log color and backtraces * Add timeouts * Specify CI runner versions * Add an armv7 job * Replace the name NO_STD with BUILD_ONLY * Update the extension to the canonical .yaml * Set AR_ and CC_ environments in docker * Install requirements to build MPFR
2025-03-22copy_misaligned_words: avoid out-of-bounds accesses (#799)Ralf Jung-0/+16
* copy_misaligned_words: avoid out-of-bounds accesses * add test to make Miri able to detect OOB in memmove * run Miri on CI
2025-03-19Switch repository layout to use a virtual manifestTrevor Gross-2/+3
The current setup has the `Cargo.toml` for `compiler-builtins` at the repository root, which means all support crates and other files are located within the package root. This works for now but is not the cleanest setup since files that should or shouldn't be included in the package need to be configured in `Cargo.toml`. If we eventually merge `libm` development into this repository, it would be nice to make this separation more straightforward. Begin cleaning things up by moving the crate source to a new `compiler-builtins` directory and adding a virtual manifest. For now the `libm` submodule is also moved, but in the future it can likely move back to the top level (ideally `compiler-builtins/src` would contain a symlink to `libm/src/math`, but unfortunately it seems like Cargo does not like something about the submodule + symlink combination).
2025-03-18nightlies without clippy are not a thing any moreRalf Jung-2/+1
2025-03-18Add a script for downloading compiler-rtTrevor Gross-5/+2
Rather than needing to copy the version and URL from the CI workflow, put this into a script that can be directly run locally.
2025-03-04Revert "ci: Pin the nightly toolchain for aarch64-unknown-linux-gnu"Trevor Gross-2/+1
The fix to this issue was synced in [1] so we should no longer need to keep aarch64 pinned. This reverts commit b2bcfc838e2a4b72fa62b333e3eb91f250aa4539. [1]: https://github.com/rust-lang/rust/pull/137661
2025-02-26Update LLVM downloads to 20.1-2025-02-13Trevor Gross-1/+1
This matches the version used by rust-lang/rust.
2025-02-23Revert "ci: Pin the nightly toolchain for i686-pc-windows-gnu"Trevor Gross-2/+1
Since [1], the issue should be resolved so the workaround can be dropped. This reverts commit 88e83b96ad09f3cf9e2d1b4543a7d43f9c5a77c0. [1]: https://github.com/rust-lang/compiler-builtins/pull/759
2025-02-19ci: Pin the nightly toolchain for aarch64-unknown-linux-gnuTrevor Gross-1/+2
Pin aarch64-unknown-linux-gnu to nightly-2025-02-07 until [1] is resolved. [1]: https://github.com/llvm/llvm-project/issues/127804
2025-02-19ci: Pin the nightly toolchain for i686-pc-windows-gnuTrevor Gross-1/+2
Pin i686-pc-windows-gnu to nightly-2025-02-07 until [1] is resolved. [1]: https://github.com/rust-lang/rust/issues/136795
2025-02-19ci: Update actions/cache to v4Trevor Gross-1/+1
Github has deprecated v2 so this needs to be bumped.
2024-11-01ci: add support for loongarch64-unknown-linux-gnuWANG Rui-0/+3
2024-10-03Upgrade CI LLVM version to 19.1Trevor Gross-1/+1
19.1 is the latest stable release from 2024-09-17. This will match what is currently being used in rust-lang/rust.
2024-10-02Add riscv64gc to CITrevor Gross-0/+3
There is a proposal to promote `riscv64gc-unknown-linux-gnu` to tier 1 [1]. We do not currently test RISC-V in CI; add it here. [1]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Imminent.20RFC.20PR.3A.20riscv64gc-unknown-linux-gnu.20to.20Tier-1
2024-08-24Use `macos-13` in CI for `x86_64-apple-darwin`beetrees-1/+1
2024-08-24Use `macos-latest` in CI for `aarch64-apple-darwin`beetrees-1/+1
2024-07-26Add `release-plz` for automatic releases.Trevor Gross-0/+30
This is what `cc-rs` is using and should create a release PR whenever a change to `master` is made. If the branch is merged, it should publish the new version. Includes configuration to disable semver checks and not keep a changelog since this is an implementation detail.
2024-05-24Add caching for downloading compiler-rtTrevor Gross-4/+12
2024-05-24Enable cache for Docker imagesTrevor Gross-0/+21
2024-05-24Enable cache for Cargo components of the buildTrevor Gross-0/+4
2024-05-21Don't run verbatim test on windows-gnuHenry Wang-2/+0
2024-05-21Properly escape /C and fix namingtheKidOfArcrania-6/+6
2024-05-21Use cmd.exetheKidOfArcrania-0/+2
2024-05-21Fix CItheKidOfArcrania-0/+1
2024-05-21Add tests for UNC paths on windows buildstheKidOfArcrania-0/+9
2024-05-11Deny warnings in CITrevor Gross-0/+4
There are currently a lot of warnings printed in CI, mostly dead code. Update CI to deny warnings.