Commit graph

167 commits

Author SHA1 Message Date
Jubilee Young
2c38ecfc90 emscripten: Use the latest emsdk 3.1.68
This should fix our precompiled std being unsound in `std::fs` code.
2024-10-10 23:55:28 -07:00
Miguel Ojeda
5fb71c677f CI: rfl: move job forward to Linux v6.12-rc2
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-10-07 23:32:48 +02:00
Miguel Ojeda
778ff06ba6 CI: rfl: factor out build targets
It will make it easier to add more in the future.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Miguel Ojeda
5c558d3ff4 CI: rfl: add macro expanded source build (-Zunpretty=expanded)
This particular target does not expand into much code, so it is a good
first candidate to see if we could keep this in the CI.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Miguel Ojeda
d584f7099a CI: rfl: add a rustfmt run
This change will also remove the current warnings in the build due to
`rustfmt` not being available (for `bindgen` output):

    error: 'rustfmt' is not installed for the custom toolchain 'local'.
    note: this is a custom toolchain, which cannot use `rustup component add`
    help: if you built this toolchain from source, and used `rustup toolchain link`, then you may be able to build the component with `x.py`
    Failed to run rustfmt: Internal rustfmt error (non-fatal, continuing)

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Miguel Ojeda
824397ddf6 CI: rfl: add a Clippy build
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Miguel Ojeda
d783b1dabd CI: rfl: switch to a stage 2 build
Apparently tools like `rustfmt` require it in order to find the right
`librustc_driver.so` without extra tweaks.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Miguel Ojeda
992dd0bbe3 CI: rfl: add a couple comments to split the steps and document them
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-28 01:57:16 +02:00
Trevor Gross
e209b05037
Rollup merge of #128935 - lqd:needs-zstd, r=Kobzol
More work on `zstd` compression

r? ``@Kobzol`` as we've discussed this.

This is a draft to show the current approach of supporting zstd in compiletest, and making the tests using it unconditional.

Knowing whether llvm/lld was built with `LLVM_ENABLE_ZSTD` is quite hard, so there are two strategies. There are details in the code, and we can discuss this approach. Until we know the config used to build CI artifacts, it seems our options are somewhat limited in any case.

zlib compression seems always enabled, so we only check this in its dedicated test, allowing the test to ignore errors due to zstd not being supported.

The zstd test is made unconditional in what it tests, by relying on `needs-llvm-zstd` to be ignored when `llvm.libzstd` isn't enabled in `config.toml`.

try-job: x86_64-gnu
try-job: x86_64-msvc
try-job: x86_64-gnu-distcheck
2024-08-27 01:46:50 -05:00
Rémy Rakic
62c8c693bd move and rename zstd script
move it where it's used, and name it like the other scripts
2024-08-25 22:17:51 +00:00
Miguel Ojeda
90b4e17a1f CI: rfl: move to temporary commit
Link: https://github.com/rust-lang/rust/pull/129416
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-23 20:52:07 -07:00
Trevor Gross
582b0a6623
Rollup merge of #129048 - heiher:update-crosstool-loongarch64, r=Mark-Simulacrum
Update `crosstool-ng` for loongarch64

The current cross-compilation toolchain for the LoongArch64 target consists of GCC 13.2.0, Binutils 2.40, and Glibc 2.36. However, Binutils 2.40 has known issues that in broken binaries without any error reports:

- https://github.com/rust-lang/rust/issues/121289
- https://github.com/cross-rs/cross/issues/1538

This patch upgrades the cross-compilation toolchain for the LoongArch64 target to resolve these issues.

- GCC: 13.2.0 -> 14.2.0
- Binutils: 2.40 -> 2.42

The new binaries remain compatible with the existing GCC 13.2.0/Glibc 2.36 distribution, and no issues have been identified.

try-job: dist-loongarch64-linux
2024-08-18 23:41:48 -05:00
WANG Rui
cebae30f72 Update crosstool-ng for loongarch64
The current cross-compilation toolchain for the LoongArch64 target
consists of GCC 13.2.0, Binutils 2.40, and Glibc 2.36. However, Binutils
2.40 has known issues that in broken binaries without any error reports:

- https://github.com/rust-lang/rust/issues/121289
- https://github.com/cross-rs/cross/issues/1538

This patch upgrades the cross-compilation toolchain for the LoongArch64 target
to resolve these issues.

- GCC: 13.2.0 -> 14.2.0
- Binutils: 2.40 -> 2.42

The new binaries remain compatible with the existing GCC 13.2.0/Glibc 2.36
distribution, and no issues have been identified.
2024-08-13 11:41:37 +08:00
Rémy Rakic
754f565fe2 don't use --rustc-args to test the stdlib's size optimizations feature 2024-08-12 15:28:38 +00:00
Kyle Huey
8db318cc96 Install zstd in dist builder image.
Build libzstd from source because the EPEL package is built without fPIC.
2024-08-09 05:55:40 -07:00
Jeff Martin
5db9d43207 Fuchsia Test Runner: enable ffx repository server
The default repository server setting has changed on Fuchsia (default is
newly "false"). Now, in order to start the repository server, the config
`repository.server.enabled` must be set to true.
2024-08-07 16:08:41 -04:00
Miguel Ojeda
77cc18fd79 CI: rfl: build the documentation
Since the `rfl` CI job has not had almost any issue for some weeks,
it is a good time to try to increase a bit the scope of what it tests.

The kernel does not use any particular `rustdoc` unstable issue (apart
from the doctests ones) so far, so in principle it should not introduce
extra issues here, and may be a good extra test case for Rust.

In addition, it may help to test new unstable features in the future.

In the worst case, we can revert it.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-07-29 23:19:02 +02:00
Miguel Ojeda
d280b8ca14 CI: rfl: build the generated doctests
We were already generating the doctests, which should already catch most
issues with our hack around `--test-builder` and `--no-run`.

However, we were not building the result of that transformation, thus
build it for completeness and to ensure the hack may not have produced
something completely broken.

In the worst case, we can revert it.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-07-29 23:18:15 +02:00
Miguel Ojeda
41cf8374a6 CI: move RFL job forward to v6.11-rc1
The tag has been released today, and since the original hash we had in
the Rust CI (which was ~v6.10-rc1), we have accumulated a fair amount
of changes and new code.

In particular, v6.11-rc1 is the first Linux tag where the kernel is
supporting an actual minimum Rust version (1.78.0), rather than a
single version.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-07-29 01:02:42 +02:00
Matthew Maurer
8bf9aeaa80 Update Android testing to API 21, matching NDK 26
We were running testing on API 18, which was already out of support for
NDK 25, and some of the ancient behavior in that image was causing
trouble when developing `rustc` features (#120326).

Update to the current LTS NDK 26, and to its minimum supported API 21.

Fixes: #120567
2024-07-26 00:52:42 +00:00
Charles Celerier
3d5b4d8f7c [fuchsia-test-runner] Reformat fuchsia-test-runner.py
Applied formatting suggestions from isort and black via pylsp.
2024-07-07 15:40:34 +00:00
Charles Celerier
54aa9e8ba2 [fuchsia-test-runner] Remove runner logs from stdout and stderr
Many tests use stdout and stderr to validate whether the test emitted
the correct output. Because fuchsia-test-runner.py was sending all
logs, including test output, to stdout, tests could not validate
output properly.

This change removes the runner logs from stdout and stderr entirely
with the exception of output from the test. All runner logs are still
available in the "log" file.

Fixed: https://fxbug.dev/351356417
2024-07-07 15:37:20 +00:00
WANG Rui
03d73fa6ba ci: Add support for dist-loongarch64-musl 2024-06-23 22:36:35 +08:00
Miguel Flores Ruiz de Eguino
d94a40516e
[fuchsia-test-runner] Remove usage of kw_only
We are still at Python 3.8 in Fuchsia infra. This was introduced at
Python 3.10.
2024-06-21 10:48:30 -07:00
Erick Tryzelaar
b7c23761d8 Sync fuchsia test runner with clang test runner
This synchronizes the fuchsia test running code with the clang test
runner. This brings with it:

* Improved logging
* Uses the fuchsia image from the SDK version
* Caches the product bundle across test runs
* Strips the binaries to reduce the data sent to the emulator
2024-06-17 16:50:33 +00:00
Matthias Krüger
e37fb612ef
Rollup merge of #126244 - erickt:bump, r=Kobzol
Update fuchsia commit, and SDK to 21.20240610.2.1

This includes a fix to the race when publishing multiple packages at the same time.

try-job: x86_64-gnu-integration
2024-06-14 08:35:47 +02:00
Erick Tryzelaar
14014abf06 Update fuchsia commit, and SDK to 21.20240610.2.1
This includes a fix to the race when publishing multiple packages at the
same time.
2024-06-13 18:56:05 +00:00
Jakub Beránek
144760e236
CI: add Rust for Linux auto job 2024-06-10 14:31:21 +02:00
Nikita Popov
9cd6c32445 Don't disable codegen tests in PR CI 2024-06-08 21:25:49 +02:00
Dion Dokter
bd71c71ea0 Move tests to more opportune point 2024-05-20 12:50:37 +02:00
Dion Dokter
0d23a71ec2 Deduplicate test command 2024-05-20 12:18:24 +02:00
Dion Dokter
5c301429bd Only test std, alloc and core 2024-05-17 12:03:02 +02:00
Dion Dokter
b964b00668 Run tests with the flag enabled 2024-05-17 11:48:50 +02:00
Marc Khouri
f44d611d85 Fuchsia test runner: fixup script
This commit fixes several issues in the fuchsia-test-runner.py script:

1. Migrate from `pm` to `ffx` for package management, as `pm` is now
deprecated. Furthermore, the `pm` calls used in this script no longer
work at Fuchsia's HEAD. This is the largest change in this commit, and
impacts all steps around repository management (creation and
registration of the repo, as well as package publishing).

2. Allow for `libtest` to be either statically or dynamically linked.
The script assumed it was dynamically linked, but the current Rust
behavior at HEAD is to statically link it.

3. Minor cleanup to use `ffx --machine json` rather than string parsing.

4. Minor cleanup to the docs around the script.
2024-05-07 17:29:38 +00:00
León Orell Valerian Liehr
bef0f3fb4c
Rollup merge of #123881 - erickt:bump-fuchsia, r=tmandry
Bump Fuchsia versions

This updates the Fuchsia commit used in `auto - x86_64-gnu-integration` CI bot to use the Rust commit 703dc9ce64. This should help improve the coverage of this builder.

It also updates the SDK version to F20.20240412.3.1, and the Fuchsia Clang version to c777c011a709dffd4fa5e79cad7947b7c3405d02.

r? ``@tmandry``
2024-04-24 14:00:56 +02:00
Jakub Beránek
a920ed4136
CI: add script for installing NodeJS and update it to v20 2024-04-18 11:11:07 +02:00
Erick Tryzelaar
b76de15709 Bump Fuchsia versions
This updates the Fuchsia commit used in `auto - x86_64-gnu-integration`
CI bot to use the Rust commit 703dc9ce64.
This should help improve the coverage of this builder.

It also updates the SDK version to F20.20240412.3.1, and the Fuchsia Clang
version to c777c011a709dffd4fa5e79cad7947b7c3405d02.
2024-04-13 02:43:41 +00:00
Josh Stone
29430554f6 Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
Amanieu d'Antras
5674f0662f Promote OpenHarmony targets to tier 2
MCP: rust-lang/compiler-team#719
2024-03-02 18:11:25 +00:00
Tyler Mandry
a1b9a59958 Build Fuchsia in CI 2023-12-07 16:30:36 -08:00
Erick Tryzelaar
d7fd2dec7c Switch fuchsia-test-runner.py to ffx product
The subcommand `ffx product-bundle` has been removed, and replaced with
the subcommand `ffx product`. This changes `fuchsia-test-runner.py` to
use it to download the SDK and product bundle for the latest release of
Fuchsia.
2023-11-10 23:57:07 +00:00
WANG Rui
f99fdac3df ci: upgrade to crosstool-ng 1.26.0 2023-09-28 10:24:09 +08:00
Fangrui Song
5ee08a0c93 ci: Update FreeBSD and illumos binutils to 2.40
The current old 2.25 seems to cause trouble to #106511.

Install texinfo to dist-x86_64-freebsd/Dockerfile like other containers
to fix
```
  MAKEINFO doc/bfd.info
/binutils/binutils-2.40/missing: 81: /binutils/binutils-2.40/missing: makeinfo: not found
WARNING: 'makeinfo' is missing on your system.
```
2023-08-22 14:54:41 -07:00
Trevor Gross
9df0f5d433 Fix recent python linting errors
- Remove unneeded imports in 'fuscia-test-runner.py'
- Add explicit stacklevel to 'x.py'
- Fix mutable types as default args in `bootstrap.py` and  `bootstrap_test.py`
2023-08-02 04:40:28 -04:00
Jakub Beránek
18f20439dd CI: build CMake 3.20 to support LLVM 17 2023-07-16 15:00:53 +02:00
Michael Goulet
935452b619
Rollup merge of #112499 - tgross35:py-ruff-fixes, r=Mark-Simulacrum
Fix python linting errors

These were flagged by `ruff`, run using the config in https://github.com/rust-lang/rust/pull/112482
2023-06-19 17:53:34 -07:00
Trevor Gross
22d00dcd47 Apply changes to fix python linting errors 2023-06-16 20:56:01 -04:00
David Koloski
4c6fd7594d Replace fvdl with ffx, allow test without install
Along with replacing fvdl uses with the equivalent ffx commands, this
also switches from using the install path for libstd-*.so and
libtest-*.so to using the build directory (now passed on the command
line). The user no longer needs to run x.py install before running tests
now, and the correct libstd and libtest are detected on run instead of
startup so the test runner can handle recompilations after starting the
testing environment.
2023-06-16 18:14:38 -04:00
David Koloski
71db99935a Add support for test tmpdir to fuchsia test runner
Also format the script to keep the code nice.
2023-06-15 12:17:40 -04:00
WANG Rui
20c6223b6f ci: Upgrade loongarch64-linux-gnu GCC to 13.1.0 2023-06-05 19:11:20 +08:00