add test: cross compiling core for no_std targets

521ec52
Opened by Jorge Aparicio at 2023-07-23 00:11:21

For these targets

  • thumbv6m-none-eabi
  • thumbv7m-none-eabi
  • thumbv7em-none-eabi
  • thumbv7em-none-eabihf
  • nvptx-nvidia-cuda
  • msp430-none-elf
  • msp430x-none-elf
  • nvptx64-nvidia-cuda

These targets have zero tests in tree. Let's at least test cross compiling core for them to catch LLVM / codegen related regressions.

This would have catched #38824 before it landed in master.

cc @alexcrichton @brson Does a run-make test sounds OK for this? Do we have at least one bot configured with --enable-llvm-assertions?

  1. If we commit to compiling core for these targets then we're essentially moving them to tier 2, which will come at a cost. I'm not sure I would have wanted to block the i128 PR personally on msp430 support, personally.

    If we do want to make these tier 2 we can figure out a strategy for doing so, but I think that we should decide first if we do want to move them to tier 2 (cc @rust-lang/tools)

    Alex Crichton at 2017-01-04 19:55:36

  2. These listed platforms are tier 3 ones, they are not guaranteed to build. Gating master on them bears a risk to make big changes to the codebase like the i128 PR even harder as it is already now. E.g. discovering this issue would have meant yet another week where the i128 PR sits in limbo, where it has to be rebased once again, and fixed once again, wait for bors queue to clean up, maybe release being too close and therefore paused again, etc. etc.

    However, I'm okay with added tests as long as its easy to reproduce the issue locally (which seems to be the case for a run-make test, where you don't need to download strange compilers, or operating systems), and as long as help from experts on those targets is provided. I for example didn't know that removing i128 for these targets was a legal way to fix the issue.

    est31 at 2017-01-04 19:56:59

  3. Discussed during tools triage the other week our conclusion was:

    • Seems good to add testing/building of libcore for the thumb targets for now
    • We should update the forget to reflect tier 3 status of the various platforms

    Alex Crichton at 2017-03-01 20:47:17

  4. Triage:

    Jonas Schievink at 2020-11-18 13:54:29

  5. A compromise variant of this, of sorts, which checks if-anything-builds-at-all, will be added as part of implementing https://github.com/rust-lang/compiler-team/issues/655 after which this can be closed.

    Jubilee at 2023-07-23 00:11:21