<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_target/src/spec/mod.rs, branch cargo_update</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=cargo_update</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=cargo_update'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-23T06:37:03+00:00</updated>
<entry>
<title>Auto merge of #146317 - saethlin:panic=immediate-abort, r=nnethercote</title>
<updated>2025-09-23T06:37:03+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-23T06:37:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=40560823602064f4c726aea3e15e104449e1a392'/>
<id>urn:sha1:40560823602064f4c726aea3e15e104449e1a392</id>
<content type='text'>
Add panic=immediate-abort

MCP: https://github.com/rust-lang/compiler-team/issues/909

This adds a new panic strategy, `-Cpanic=immediate-abort`. This panic strategy essentially just codifies use of `-Zbuild-std-features=panic_immediate_abort`. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts.

In many parts of the compiler, `PanicStrategy::ImmediateAbort` behaves just like `PanicStrategy::Abort`, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say `sess.panic_strategy().unwinds()`.

The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by `compiler/rustc_metadata/src/dependency_format.rs` and this is tested for in `tests/ui/panic-runtime/`. We could _technically_ be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large.

`-Cpanic=immediate-abort` sets both `cfg(panic = "immediate-abort")` _and_ `cfg(panic = "abort")`. bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require `-Cpanic=abort` so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing.

The changes to the standard library attributes are purely mechanical. Apart from that, I removed an `unsafe` we haven't needed for a while since the `abort` intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature.

To test that `-Cpanic=immediate-abort` conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it.

I've added a test that this produces the desired codegen, called `tests/run-make-cargo/panic-immediate-abort-codegen/` and also a separate run-make-cargo test that checks that we can build a binary.
</content>
</entry>
<entry>
<title>Add x86_64-unknown-motor (Motor OS) tier 3 target</title>
<updated>2025-09-21T19:43:13+00:00</updated>
<author>
<name>U. Lasiotus</name>
<email>lasiotus@motor-os.org</email>
</author>
<published>2025-09-21T15:54:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0138bbd4958f2247770105ff63e9129e779da569'/>
<id>urn:sha1:0138bbd4958f2247770105ff63e9129e779da569</id>
<content type='text'>
Add the initial no-std Motor OS compiler target.

Motor OS has been developed for several years in the open:
https://github.com/moturus/motor-os.

It has a more or less full implementation of Rust std library,
as well as tokio/mio ports.

Build instructions can be found here:
https://github.com/moturus/motor-os/blob/main/docs/build.md.

Signed-off-by: U. Lasiotus &lt;lasiotus@motor-os.org&gt;
</content>
</entry>
<entry>
<title>Add panic=immediate-abort</title>
<updated>2025-09-21T17:12:18+00:00</updated>
<author>
<name>Ben Kimock</name>
<email>kimockb@gmail.com</email>
</author>
<published>2025-09-07T16:31:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=888679013d1f424adef06267f3630069b4cabd40'/>
<id>urn:sha1:888679013d1f424adef06267f3630069b4cabd40</id>
<content type='text'>
</content>
</entry>
<entry>
<title>generate list of all variants with `target_spec_enum`</title>
<updated>2025-09-19T22:14:50+00:00</updated>
<author>
<name>Deadbeef</name>
<email>ent3rm4n@gmail.com</email>
</author>
<published>2025-09-19T22:14:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4841d8c5ffb6a7bd025c14d8e9d2c23e6c458792'/>
<id>urn:sha1:4841d8c5ffb6a7bd025c14d8e9d2c23e6c458792</id>
<content type='text'>
This helps us avoid the hardcoded lists elsewhere.
</content>
</entry>
<entry>
<title>Add --print target-spec-json-schema</title>
<updated>2025-09-12T18:53:28+00:00</updated>
<author>
<name>Noratrieb</name>
<email>48135649+Noratrieb@users.noreply.github.com</email>
</author>
<published>2025-07-26T10:39:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f157ce994ea45e9faea9eff89c5f8b3d4ea77b6e'/>
<id>urn:sha1:f157ce994ea45e9faea9eff89c5f8b3d4ea77b6e</id>
<content type='text'>
This schema is helpful for people writing custom target spec JSON. It
can provide autocomplete in the editor, and also serves as documentation
when there are documentation comments on the structs, as `schemars` will
put them in the schema.
</content>
</entry>
<entry>
<title>Introduce `target_spec_enum` macro to avoid duplication</title>
<updated>2025-09-12T18:37:09+00:00</updated>
<author>
<name>Noratrieb</name>
<email>48135649+Noratrieb@users.noreply.github.com</email>
</author>
<published>2025-07-26T10:15:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a0bb9cc57db551289cba9fefde086e45cb82733f'/>
<id>urn:sha1:a0bb9cc57db551289cba9fefde086e45cb82733f</id>
<content type='text'>
With this macro we only need to enumerate every variant once. This saves
a lot of duplication already between the definition, the `FromStr` impl
and the `ToJson` impl.

It also enables us to do further things with it like JSON schema
generation.
</content>
</entry>
<entry>
<title>Rollup merge of #144443 - WaffleLapkin:integer-target-pointer-width, r=Noratrieb</title>
<updated>2025-08-31T11:40:34+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-08-31T11:40:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0e28b4201ac8f12cfafe5383f442c7b00f8bdcc6'/>
<id>urn:sha1:0e28b4201ac8f12cfafe5383f442c7b00f8bdcc6</id>
<content type='text'>
Make target pointer width in target json an integer

r? Noratrieb
cc `@RalfJung` (https://github.com/rust-lang/rust/pull/142352/files#r2230380120)

try-job: x86_64-rust-for-linux
</content>
</entry>
<entry>
<title>compiler: Add `{x86_64,aarch64,riscv64gc}-unknown-managarm-mlibc` targets</title>
<updated>2025-08-28T22:49:29+00:00</updated>
<author>
<name>no92</name>
<email>leo@managarm.org</email>
</author>
<published>2025-08-28T21:15:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6577a0ffdbe20f0c50537c34aa3214e026fe1904'/>
<id>urn:sha1:6577a0ffdbe20f0c50537c34aa3214e026fe1904</id>
<content type='text'>
Co-authored-by: Dennis Bonke &lt;dennis@managarm.org&gt;
</content>
</entry>
<entry>
<title>turn pointer width into an integer in target.json</title>
<updated>2025-08-27T21:44:49+00:00</updated>
<author>
<name>Waffle Lapkin</name>
<email>waffle.lapkin@gmail.com</email>
</author>
<published>2025-07-25T09:28:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1f7efabdc6204b3a1cc9bfe612136f848f643949'/>
<id>urn:sha1:1f7efabdc6204b3a1cc9bfe612136f848f643949</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #145076 - ZhongyaoChen:feature/add-tier3-riscv64a23-target, r=davidtwco</title>
<updated>2025-08-26T14:34:10+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-08-26T14:34:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=879bb220927556e6c1de6a0f020127129698e3de'/>
<id>urn:sha1:879bb220927556e6c1de6a0f020127129698e3de</id>
<content type='text'>
Add new Tier-3 target: riscv64a23-unknown-linux-gnu

MCP: [Tier 3 target proposal: riscv64a23-unknown-linux-gnu](https://github.com/rust-lang/compiler-team/issues/894)

Changes:

- add new target: riscv64a23-unknown-linux-gnu
- add target page
</content>
</entry>
</feed>
