Uh oh!
There was an error while loading. Please reload this page.
Enable test builds with --bootstrap - #127909
Conversation
am11
commented
May 7, 2026
For community platforms, this is the cross-build workflow for runtime development/testing: os=linux
arch=riscv64
# ROOTFS_DIR is set# cross-build product, --bootstrap
./build.sh clr+libs --cross --arch $arch --os $os --bootstrap
# for rebuild (e.g. after editing code), --use-bootstrap
./build.sh clr+libs --cross --arch $arch --os $os --use-bootstrap
# runtime tests cross-build, --use-bootstrap
src/tests/build.sh -cross -$arch -$os -p:LibrariesConfiguration=Debug --use-bootstrap
# libraries tests cross-build, --use-bootstrap
./build.sh libs.tests --cross --arch $arch --os $os --use-bootstrapcc: |
jkotas
commented
May 7, 2026
Update PR title to match the content? |
am11
commented
May 7, 2026
Ah, it somehow used cached title from my previous PR. |
f6b1128 to
f6b70d2CompareThefrank
commented
May 8, 2026
So if I am reading this correctly, after this PR, I can:
This is pretty awesome. I gave up trying to do nightly runtime builds / tests more than a year ago because it was such a hassle natively. |
Yes, it exists, e.g. in the build container: $ docker run --rm -v$(pwd):/runtime -w /runtime -e ROOTFS_DIR=/crossrootfs/<xxx> -it <container-urn>
$ os=<yyy>; arch=<xxx>;
$ ./build.sh clr+libs --cross --arch $arch --os $os --bootstrap
$ ./build.sh libs.tests --cross --arch $arch --os $os --use-bootstrap -p:ArchiveTests=truefrom host: # pack and upload testhost to the machine
$ tar -czf testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz artifacts/bin/testhost/net11.0-<yyy>-Debug-<xxx>
$ scp testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz $TargetMachine:/tmp
# copy tests to the machine
$ scp artifacts/helix/tests/linux.AnyCPU.Debug/System.Text.RegularExpressions.Unit.Tests.zip $TargetMachine:/tmp
# usage
$ ssh $TargetMachine
$ mkdir testhost
$ tar -xzf /tmp/testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz -C testhost
$ mkdir regex-tests
$ cd$_
$ unzip System.Text.RegularExpressions.Unit.Tests.zip
$ ./RunTests.sh --runtime-path ~/testhost/artifacts/bin/testhost/net11.0-<yyy>-Debug-<xxx>For runtime tests, after the build, just pack and upload The only thing which doesn't work in general (unrelated to bootstrap) is building / packing individual library tests. e.g. the zip file generated by |
First time we ran the tests (with #127909) and found issues with interpreter tests. 1. clang-21 defaults to rvv baseline, previously clang-18 was defaulting to rv64gc; so we need to pin to our baseline for runtime binaries. This program helped figuring out SIGILL: ```sh $ cat riscv_default_probe.c #if defined(__riscv_v) #error At RVV (__riscv_v) #elif defined(__riscv_b) #error At Bitmanip (__riscv_b) #elif defined(__riscv_zfa) #error At Zfa #elif defined(__riscv_zfh) #error At Zfh #elif defined(__riscv_d) #error At D #elif defined(__riscv_f) #error At F #elif defined(__riscv_c) #error At C #elif defined(__riscv_m) #error At M #elif defined(__riscv_a) #error At A #elif defined(__riscv_i) #error At I #else #error At unknown baseline #endif $ clang-21 --target=riscv64-unknown-linux-gnu -c riscv_default_probe.c riscv_default_probe.c:2:2: error: At RVV (__riscv_v) 2 | #error At RVV (__riscv_v) | ^ # vs. $ clang-18 --target=riscv64-unknown-linux-gnu -c riscv_default_probe.c riscv_default_probe.c:10:2: error: At D 10 | #error At D | ^ ``` 2. Remove negative sign from prolog offset; it was growing in opposite direction. 3. Remove an invalid assert in the RISC-V/LoongArch return classification path. After fixing offset issue, tests progressed to `TestCallingConvention2Rev` and then tripped a debug-only check that is AMD64-specific and not applicable on these targets. Return classification here is already handled by FP-struct info plus size-based integer mapping, so removing the assert preserves intended behavior and unblocks the interpreter calling-convention tests. Fixes#127860
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
am11
commented
May 29, 2026
@akoeplinger, @janvorli, it looks like Jeremy is not available, could you please sign off and merge this PR? I am carrying this patch across multiple branches. It fixes testing on community platforms which regressed since the |
janvorli
left a comment
There was a problem hiding this comment.
LGTM, I just have few minor questions. Thank you!
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
src/tests/build.sh --use-bootstrap --cross --riscv64 ...)Fixes#115622