-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove no_integrated_as
mode.
#70345
Conversation
Note that I'm not 100% certain that
That was written in July 2017, and I'm hoping that the LLVM backend now has that ability. @japaric, are you able to confirm if it does? |
Targets are not limited to those that are built-in and exist now though. |
c827328
to
b4b5a82
Compare
☔ The latest upstream changes (presumably #70351) made this pull request unmergeable. Please resolve the merge conflicts. |
MSP430 no longer needs this, but like @petrochenkov said, external targets might. Is there any specific reason for removing support for this? Has the code been a big maintenance burden or slowed down development in other ways? If not I'd like to kindly request not to remove it. |
Code-wise this looks fine by me, thanks @nnethercote! @jonas-schievink the codegen backend is currently a large and sprawling maze of lots of conditionals, so having extra ones "just because" is a burden on maintaining this because everyone new who looks at the backend has to understand themselves why there's all these odd cases and booleans for what to do. @petrochenkov personally I don't disagree that it's great to work wherever possible, but there's a very real cost on maintenance here. If there's no clear benefit my opinion is that it should be removed, and at this time I think there's unclear benefit because there's no known target using this. |
@nnethercote @alexcrichton any updates on this? do we want to merge it ? |
@Dylan-DPC er it seems a bit early to be pinging about this? This PR itself is only 14 hours old and the last discussion was 4 hours ago. I'm not sure @nnethercote is even awake yet to continue discussion on this... |
@alexcrichton oops too many tabs open. Sorry :D |
I have started looking at this codegen stuff because I am working on #66961. As Alex says, the codegen backend is complex and messy. I've already filed a couple of clean-up PRs as preliminaries: #70297, #70289. Alex suggested that |
I personally feel that if we need this functionality it should come back in a less-complicated form. For example we shouldn't have to plumb many different options around the compiler. Instead there should be a desire for an object file with one piece of configuration saying "instead of LLVM generating an object file, use this Having a small local |
FWIW, I have combined rustc with out-of-tree LLVM backends and also worked on LLVM support for new ISA extensions, and I have never had a need for this flag. Teaching LLVM to emit basic object files is usually simple compared to everything else that goes into backend development, and usually quite valuable. Certainly there are targets out there which don't prioritize it, but in my experience, being complete enough to be used with rustc but unable to produce object files is an anomaly rather than a normal stage in an LLVM backend's lifecycle. |
Specifically, remove both `-Z no_integrated_as` and `TargetOptions::no_integrated_as`. The latter was only used for the `msp430_none_elf` platform, for which it's no longer required.
b4b5a82
to
02840ca
Compare
FWIW, I rebased this code. After #70384 it's looking even nicer. |
@bors: r+ This looks like a great simplification to me in what's already pretty gnarly code. It's also relatively easy to revert if truly necessary and we can go back to the drawing board to figure out how to integrate this in a cleaner fashion. Because of that, I'm gonna r+ this. |
📌 Commit 02840ca has been approved by |
Rollup of 5 pull requests Successful merges: - rust-lang#70345 (Remove `no_integrated_as` mode.) - rust-lang#70434 (suggest `;` on expr `mac!()` which is good as stmt `mac!()`) - rust-lang#70457 (non-exhastive diagnostic: add note re. scrutinee type) - rust-lang#70478 (Refactor type_of for constants) - rust-lang#70480 (clarify hir_id <-> node_id method names) Failed merges: r? @ghost
@Centril: this PR removed a |
A bit "too-little too-late" for me, but I've been trying to diagnose some regressions that I suspect popped up in msp430 during the switch to an integrated assembler. It's taking a while because:
Right now, I'm not sure if this'll be necessary, but @alexcrichton seems to imply it's easy to add this option back in in a less-complicated form as a workaround?
I simply don't think I have the bandwidth to hack on LLVM, but would be interested in discussing re-enabling a EDIT: Additionally for the purposes of experimentation, it's possible to target MIR or Cranelift instead of LLVM. I know people besides me are concerned about alternate backends existing- the refactor wouldn't have happened otherwise. How does the removal of |
At least rustc_codegen_cranelift didn't support it anyway. Cranelift only supports emitting machine code, not assembly. Also code that was removed in this PR was either in the LLVM backend, or was just some utils in the rustc_codegen_ssa. This means that it is possible to implement this in other backends without touching rustc. |
@cr1901 I don't know if it'll be easy per se, but I think it would be best to try to integrate it today in an ideally cleaner form. For example it would ideally be one local decision along the lines of "either have LLVM produce the object or have LLVM produce the asm and we run an external assembler". This previously touched a number of parts in the codebase (as can be seen here). |
Ack. @alexcrichton Right now, I'm not sure how I would add the option back in. But if you want it reintroduced in a cleaner form, then great! Let me figure out whether the change to an integrated assembler is to blame for my woes in the first place. If it is, then I think I have some interest in reintroducing this option if someone can give me some guidance on how it can be done (under the assumption it's far less painful than hacking on llvm, and it gives me a means to compare and contrast if I find new regressions). Also,
Perhaps, but if the gnu assembler is perfectly good as-is for a target without an upstream llvm backend, not needing to implement the assembler means I can test Rust binaries in practice more quickly. :P |
Unfortuantely I don't personally have time to review/guide how to re-add this. Others on the compiler team may be able to help out though! |
This commit: - Adds "following values" indicators for all the options that are missing them. - Tweaks some wording and punctuation for consistency. - Rewords some things for clarity. - Removes the `no-integrated-as` entry, because that option was removed in rust-lang#70345.
Pkgsrc changes: * Remove a couple diffs which are now integrated upstream. * Adjust cargo checksums after upstream upgrades. * Belatedly bump the curl dependency * Unset DESTDIR during the build phase, to work around a mysterious build bug deep in the bowels of llvm. * Bump nearly all bootstraps to 1.43.1. Upstream changes: Version 1.44.0 (2020-06-04) ========================== Language -------- - [You can now use `async/.await` with `#[no_std]` enabled.][69033] - [Added the `unused_braces` lint.][70081] **Syntax-only changes** - [Expansion-driven outline module parsing][69838] ```rust #[cfg(FALSE)] mod foo { mod bar { mod baz; // `foo/bar/baz.rs` doesn't exist, but no error! } } ``` These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation. Compiler -------- - [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156] Additionally when in incremental mode rustc defaults to 256 codegen units. - [Refactored `catch_unwind`, to have zero-cost unless unwinding is enabled and a panic is thrown.][67502] - [Added tier 3\* support for the `aarch64-unknown-none` and `aarch64-unknown-none-softfloat` targets.][68334] - [Added tier 3 support for `arm64-apple-tvos` and `x86_64-apple-tvos` targets.][68191] Libraries --------- - [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows `vec![]` to be able to be used in `const` contexts. - [`convert::Infallible` now implements `Hash`.][70281] - [`OsString` now implements `DerefMut` and `IndexMut` returning a `&mut OsStr`.][70048] - [Unicode 13 is now supported.][69929] - [`String` now implements `From<&mut str>`.][69661] - [`IoSlice` now implements `Copy`.][69403] - [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is less than 32. - [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899] - [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`, `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all integer types.][69373] Stabilized APIs --------------- - [`PathBuf::with_capacity`] - [`PathBuf::capacity`] - [`PathBuf::clear`] - [`PathBuf::reserve`] - [`PathBuf::reserve_exact`] - [`PathBuf::shrink_to_fit`] - [`f32::to_int_unchecked`] - [`f64::to_int_unchecked`] - [`Layout::align_to`] - [`Layout::pad_to_align`] - [`Layout::array`] - [`Layout::extend`] Cargo ----- - [Added the `cargo tree` command which will print a tree graph of your dependencies.][cargo/8062] E.g. ``` mdbook v0.3.2 (/Users/src/rust/mdbook) +-- ammonia v3.0.0 | +-- html5ever v0.24.0 | | +-- log v0.4.8 | | | +-- cfg-if v0.1.9 | | +-- mac v0.1.1 | | +-- markup5ever v0.9.0 | | +-- log v0.4.8 (*) | | +-- phf v0.7.24 | | | +-- phf_shared v0.7.24 | | | +-- siphasher v0.2.3 | | | +-- unicase v1.4.2 | | | [build-dependencies] | | | +-- version_check v0.1.5 ... ``` You can also display dependencies on multiple versions of the same crate with `cargo tree -d` (short for `cargo tree --duplicates`). Misc ---- - [Rustdoc now allows you to specify `--crate-version` to have rustdoc include the version in the sidebar.][69494] Compatibility Notes ------------------- - [Rustc now correctly generates static libraries on Windows GNU targets with the `.a` extension, rather than the previous `.lib`.][70937] - [Removed the `-C no_integrated_as` flag from rustc.][70345] - [The `file_name` property in JSON output of macro errors now points the actual source file rather than the previous format of `<NAME macros>`.][70969] **Note:** this may not point a file that actually exists on the user's system. - [The minimum required external LLVM version has been bumped to LLVM 8.][71147] - [`mem::{zeroed, uninitialised}` will now panic when used with types that do not allow zero initialization such as `NonZeroU8`.][66059] This was previously a warning. - [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as` operator has been defined as a saturating operation.][71269] This was previously undefined behaviour, you can use the `{f64, f32}::to_int_unchecked` methods to continue using the current behaviour which may desirable in rare performance sensitive situations. Internal Only ------------- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools. - [dep_graph Avoid allocating a set on when the number reads are small.][69778] - [Replace big JS dict with JSON parsing.][71250] [69373]: rust-lang/rust#69373 [66059]: rust-lang/rust#66059 [68191]: rust-lang/rust#68191 [68899]: rust-lang/rust#68899 [71147]: rust-lang/rust#71147 [71250]: rust-lang/rust#71250 [70937]: rust-lang/rust#70937 [70969]: rust-lang/rust#70969 [70632]: rust-lang/rust#70632 [70281]: rust-lang/rust#70281 [70345]: rust-lang/rust#70345 [70048]: rust-lang/rust#70048 [70081]: rust-lang/rust#70081 [70156]: rust-lang/rust#70156 [71269]: rust-lang/rust#71269 [69838]: rust-lang/rust#69838 [69929]: rust-lang/rust#69929 [69661]: rust-lang/rust#69661 [69778]: rust-lang/rust#69778 [69494]: rust-lang/rust#69494 [69403]: rust-lang/rust#69403 [69033]: rust-lang/rust#69033 [68692]: rust-lang/rust#68692 [68334]: rust-lang/rust#68334 [67502]: rust-lang/rust#67502 [cargo/8062]: rust-lang/cargo#8062 [`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity [`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity [`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear [`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve [`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact [`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit [`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked [`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked [`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to [`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align [`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array [`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
Version 1.44.0 (2020-06-04) ========================== Language -------- - [You can now use `async/.await` with `#[no_std]` enabled.][69033] - [Added the `unused_braces` lint.][70081] **Syntax-only changes** - [Expansion-driven outline module parsing][69838] ```rust #[cfg(FALSE)] mod foo { mod bar { mod baz; // `foo/bar/baz.rs` doesn't exist, but no error! } } ``` These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation. Compiler -------- - [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156] Additionally when in incremental mode rustc defaults to 256 codegen units. - [Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and a panic is thrown.][67502] - [Added tier 3\* support for the `aarch64-unknown-none` and `aarch64-unknown-none-softfloat` targets.][68334] - [Added tier 3 support for `arm64-apple-tvos` and `x86_64-apple-tvos` targets.][68191] Libraries --------- - [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows `vec![]` to be able to be used in `const` contexts. - [`convert::Infallible` now implements `Hash`.][70281] - [`OsString` now implements `DerefMut` and `IndexMut` returning a `&mut OsStr`.][70048] - [Unicode 13 is now supported.][69929] - [`String` now implements `From<&mut str>`.][69661] - [`IoSlice` now implements `Copy`.][69403] - [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is at most 32. - [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899] - [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`, `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all integer types.][69373] Stabilized APIs --------------- - [`PathBuf::with_capacity`] - [`PathBuf::capacity`] - [`PathBuf::clear`] - [`PathBuf::reserve`] - [`PathBuf::reserve_exact`] - [`PathBuf::shrink_to_fit`] - [`f32::to_int_unchecked`] - [`f64::to_int_unchecked`] - [`Layout::align_to`] - [`Layout::pad_to_align`] - [`Layout::array`] - [`Layout::extend`] Cargo ----- - [Added the `cargo tree` command which will print a tree graph of your dependencies.][cargo/8062] E.g. ``` mdbook v0.3.2 (/Users/src/rust/mdbook) ├── ammonia v3.0.0 │ ├── html5ever v0.24.0 │ │ ├── log v0.4.8 │ │ │ └── cfg-if v0.1.9 │ │ ├── mac v0.1.1 │ │ └── markup5ever v0.9.0 │ │ ├── log v0.4.8 (*) │ │ ├── phf v0.7.24 │ │ │ └── phf_shared v0.7.24 │ │ │ ├── siphasher v0.2.3 │ │ │ └── unicase v1.4.2 │ │ │ [build-dependencies] │ │ │ └── version_check v0.1.5 ... ``` You can also display dependencies on multiple versions of the same crate with `cargo tree -d` (short for `cargo tree --duplicates`). Misc ---- - [Rustdoc now allows you to specify `--crate-version` to have rustdoc include the version in the sidebar.][69494] Compatibility Notes ------------------- - [Rustc now correctly generates static libraries on Windows GNU targets with the `.a` extension, rather than the previous `.lib`.][70937] - [Removed the `-C no_integrated_as` flag from rustc.][70345] - [The `file_name` property in JSON output of macro errors now points the actual source file rather than the previous format of `<NAME macros>`.][70969] **Note:** this may not point to a file that actually exists on the user's system. - [The minimum required external LLVM version has been bumped to LLVM 8.][71147] - [`mem::{zeroed, uninitialised}` will now panic when used with types that do not allow zero initialization such as `NonZeroU8`.][66059] This was previously a warning. - [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as` operator has been defined as a saturating operation.][71269] This was previously undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to continue using the current behaviour, which may be desirable in rare performance sensitive situations. Internal Only ------------- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools. - [dep_graph Avoid allocating a set on when the number reads are small.][69778] - [Replace big JS dict with JSON parsing.][71250] [69373]: rust-lang/rust#69373 [66059]: rust-lang/rust#66059 [68191]: rust-lang/rust#68191 [68899]: rust-lang/rust#68899 [71147]: rust-lang/rust#71147 [71250]: rust-lang/rust#71250 [70937]: rust-lang/rust#70937 [70969]: rust-lang/rust#70969 [70632]: rust-lang/rust#70632 [70281]: rust-lang/rust#70281 [70345]: rust-lang/rust#70345 [70048]: rust-lang/rust#70048 [70081]: rust-lang/rust#70081 [70156]: rust-lang/rust#70156 [71269]: rust-lang/rust#71269 [69838]: rust-lang/rust#69838 [69929]: rust-lang/rust#69929 [69661]: rust-lang/rust#69661 [69778]: rust-lang/rust#69778 [69494]: rust-lang/rust#69494 [69403]: rust-lang/rust#69403 [69033]: rust-lang/rust#69033 [68692]: rust-lang/rust#68692 [68334]: rust-lang/rust#68334 [67502]: rust-lang/rust#67502 [cargo/8062]: rust-lang/cargo#8062 [`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity [`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity [`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear [`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve [`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact [`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit [`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked [`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked [`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to [`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align [`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array [`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
Pkgsrc changes: * Remove the clutter caused by the cross-compile setup from Makefile (Now consigned to my own private cross.mk file.) * Remove a couple of patches which are now integrated upstream. * Minor adjustments to a couple of other patches. * Adjust cargo checksums after upstream upgrades. * Belatedly bump the curl dependency * If doing a "dist" build, unset DESTDIR during the build phase, to work around a mysterious build bug deep in the bowels of llvm, causing llvm tools to be installed to a directory unexpecetd by the rest of the rust build, ref. rust-lang/rust#73132 A "dist" build is not expected to be followed by an "install". * Bump nearly all bootstraps to 1.43.1; NetBSD earmv7hf bootstrap bumped to 1.44.0, as that one now finally builds and works. Upstream changes: Version 1.44.0 (2020-06-04) ========================== Language -------- - [You can now use `async/.await` with `#[no_std]` enabled.][69033] - [Added the `unused_braces` lint.][70081] **Syntax-only changes** - [Expansion-driven outline module parsing][69838] ```rust #[cfg(FALSE)] mod foo { mod bar { mod baz; // `foo/bar/baz.rs` doesn't exist, but no error! } } ``` These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation. Compiler -------- - [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156] Additionally when in incremental mode rustc defaults to 256 codegen units. - [Refactored `catch_unwind`, to have zero-cost unless unwinding is enabled and a panic is thrown.][67502] - [Added tier 3\* support for the `aarch64-unknown-none` and `aarch64-unknown-none-softfloat` targets.][68334] - [Added tier 3 support for `arm64-apple-tvos` and `x86_64-apple-tvos` targets.][68191] Libraries --------- - [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows `vec![]` to be able to be used in `const` contexts. - [`convert::Infallible` now implements `Hash`.][70281] - [`OsString` now implements `DerefMut` and `IndexMut` returning a `&mut OsStr`.][70048] - [Unicode 13 is now supported.][69929] - [`String` now implements `From<&mut str>`.][69661] - [`IoSlice` now implements `Copy`.][69403] - [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is less than 32. - [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899] - [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`, `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all integer types.][69373] Stabilized APIs --------------- - [`PathBuf::with_capacity`] - [`PathBuf::capacity`] - [`PathBuf::clear`] - [`PathBuf::reserve`] - [`PathBuf::reserve_exact`] - [`PathBuf::shrink_to_fit`] - [`f32::to_int_unchecked`] - [`f64::to_int_unchecked`] - [`Layout::align_to`] - [`Layout::pad_to_align`] - [`Layout::array`] - [`Layout::extend`] Cargo ----- - [Added the `cargo tree` command which will print a tree graph of your dependencies.][cargo/8062] E.g. ``` mdbook v0.3.2 (/Users/src/rust/mdbook) +-- ammonia v3.0.0 | +-- html5ever v0.24.0 | | +-- log v0.4.8 | | | +-- cfg-if v0.1.9 | | +-- mac v0.1.1 | | +-- markup5ever v0.9.0 | | +-- log v0.4.8 (*) | | +-- phf v0.7.24 | | | +-- phf_shared v0.7.24 | | | +-- siphasher v0.2.3 | | | +-- unicase v1.4.2 | | | [build-dependencies] | | | +-- version_check v0.1.5 ... ``` You can also display dependencies on multiple versions of the same crate with `cargo tree -d` (short for `cargo tree --duplicates`). Misc ---- - [Rustdoc now allows you to specify `--crate-version` to have rustdoc include the version in the sidebar.][69494] Compatibility Notes ------------------- - [Rustc now correctly generates static libraries on Windows GNU targets with the `.a` extension, rather than the previous `.lib`.][70937] - [Removed the `-C no_integrated_as` flag from rustc.][70345] - [The `file_name` property in JSON output of macro errors now points the actual source file rather than the previous format of `<NAME macros>`.][70969] **Note:** this may not point a file that actually exists on the user's system. - [The minimum required external LLVM version has been bumped to LLVM 8.][71147] - [`mem::{zeroed, uninitialised}` will now panic when used with types that do not allow zero initialization such as `NonZeroU8`.][66059] This was previously a warning. - [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as` operator has been defined as a saturating operation.][71269] This was previously undefined behaviour, you can use the `{f64, f32}::to_int_unchecked` methods to continue using the current behaviour which may desirable in rare performance sensitive situations. Internal Only ------------- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools. - [dep_graph Avoid allocating a set on when the number reads are small.][69778] - [Replace big JS dict with JSON parsing.][71250] [69373]: rust-lang/rust#69373 [66059]: rust-lang/rust#66059 [68191]: rust-lang/rust#68191 [68899]: rust-lang/rust#68899 [71147]: rust-lang/rust#71147 [71250]: rust-lang/rust#71250 [70937]: rust-lang/rust#70937 [70969]: rust-lang/rust#70969 [70632]: rust-lang/rust#70632 [70281]: rust-lang/rust#70281 [70345]: rust-lang/rust#70345 [70048]: rust-lang/rust#70048 [70081]: rust-lang/rust#70081 [70156]: rust-lang/rust#70156 [71269]: rust-lang/rust#71269 [69838]: rust-lang/rust#69838 [69929]: rust-lang/rust#69929 [69661]: rust-lang/rust#69661 [69778]: rust-lang/rust#69778 [69494]: rust-lang/rust#69494 [69403]: rust-lang/rust#69403 [69033]: rust-lang/rust#69033 [68692]: rust-lang/rust#68692 [68334]: rust-lang/rust#68334 [67502]: rust-lang/rust#67502 [cargo/8062]: rust-lang/cargo#8062 [`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity [`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity [`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear [`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve [`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact [`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit [`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked [`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked [`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to [`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align [`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array [`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
Another example of a target without integrated assembler - https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Report.20patch.20for.20a.20new.20OS |
Specifically, remove both
-Z no_integrated_as
andTargetOptions::no_integrated_as
. The latter was only used for themsp430_none_elf
platform, for which it's no longer required.r? @alexcrichton