Skip to content
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

Only dist llvm-objcopy if llvm tools are enabled #134240

Merged
merged 1 commit into from
Dec 14, 2024

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented Dec 13, 2024

This uses the same condition that #132720 added in the compilation phase.

r? @jieyouxu

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Dec 13, 2024
Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense, thanks!

@jieyouxu
Copy link
Member

jieyouxu commented Dec 13, 2024

Actually just one question. @cuviper in #131405 we had to

  • Includes llvm-strip (a symlink to llvm-objcopy) in the compiler dist artifact so that it can be used for -Cstrip instead of the system tooling.
  • Uses llvm-strip instead of /usr/bin/strip for macOS. macOS needs a specific linker and the system one is preferred, hence Fix up setting strip = true in Cargo.toml makes build scripts fail in… #130781 but that doesn't work when cross-compiling, so use the llvm-strip utility instead.

Will changing this for the dist flow prove problematic if the dist defaults + configurations we currently use combined regress that behavior?

I think we definitely should be guarding the dist flow here, like your change does, I just wanted to double-check what our default behavior is.

@jieyouxu jieyouxu added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 13, 2024
@cuviper
Copy link
Member Author

cuviper commented Dec 13, 2024

The default still has llvm tools enabled, so you have to explicitly opt out -- I think that's fine for the issue you mention, although it doesn't look like we have any fallback on macOS if you built without it:

if sess.target.is_like_osx {
let stripcmd = "rust-objcopy";

For my part, I want to opt out in Linux distro builds, and it's not used there anyway.

@jieyouxu
Copy link
Member

Right, that sounds reasonable to me. Thanks!

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Dec 13, 2024

📌 Commit 4c6d793 has been approved by jieyouxu

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Dec 13, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 13, 2024
Only dist `llvm-objcopy` if llvm tools are enabled

This uses the same condition that rust-lang#132720 added in the compilation phase.

r? `@jieyouxu`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 14, 2024
Only dist `llvm-objcopy` if llvm tools are enabled

This uses the same condition that rust-lang#132720 added in the compilation phase.

r? ```@jieyouxu```
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 14, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#134181 (Tweak multispan rendering to reduce output length)
 - rust-lang#134209 (validate `--skip` and `--exclude` paths)
 - rust-lang#134231 (rustdoc-search: fix mismatched path when parent re-exported twice)
 - rust-lang#134236 (crashes: more tests v2)
 - rust-lang#134240 (Only dist `llvm-objcopy` if llvm tools are enabled)
 - rust-lang#134244 (rustc_borrowck: Stop suggesting the invalid syntax `&mut raw const`)
 - rust-lang#134251 (A bunch of cleanups (part 2))
 - rust-lang#134256 (Use a more precise span in placeholder_type_error_diag)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit a53a3cc into rust-lang:master Dec 14, 2024
6 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Dec 14, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Dec 14, 2024
Rollup merge of rust-lang#134240 - cuviper:dist-llvm-tools, r=jieyouxu

Only dist `llvm-objcopy` if llvm tools are enabled

This uses the same condition that rust-lang#132720 added in the compilation phase.

r? ``@jieyouxu``
@onur-ozkan
Copy link
Member

onur-ozkan commented Jan 13, 2025

Nominating as it solves #135356.

@rustbot label +stable-nominated

@rustbot rustbot added beta-nominated Nominated for backporting to the compiler in the beta channel. stable-nominated Nominated for backporting to the compiler in the stable channel. labels Jan 13, 2025
@cuviper
Copy link
Member Author

cuviper commented Jan 13, 2025

It's already on 1.85-beta, but you can still consider 1.84-stable.

@rustbot label -beta-nominated

@rustbot rustbot removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label Jan 13, 2025
@onur-ozkan

This comment was marked as outdated.

@onur-ozkan
Copy link
Member

@rustbot label +stable-accepted

(see Backporting #134240 to stable)

@rustbot rustbot added the stable-accepted Accepted for backporting to the compiler in the stable channel. label Jan 15, 2025
@cuviper cuviper modified the milestones: 1.85.0, 1.84.1 Jan 27, 2025
@cuviper cuviper removed the stable-nominated Nominated for backporting to the compiler in the stable channel. label Jan 27, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 27, 2025
[stable] Prepare Rust 1.84.1 point release

- [Fix ICE 132920 in duplicate-crate diagnostics.](rust-lang#133304)
- [Fix errors for overlapping impls in incremental rebuilds.](rust-lang#133828)
- [Fix slow compilation related to the next-generation trait solver.](rust-lang#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](rust-lang#135643)
- Fixes for building Rust from source:
  - [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](rust-lang#134240)
  - [Add Profile Override for Non-Git Sources.](rust-lang#135433)
  - [Resolve symlinks of LLVM tool binaries before copying them.](rust-lang#135585)
  - [Make it possible to use ci-rustc on tarball sources.](rust-lang#135722)

cc `@rust-lang/release`
r? ghost
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request Feb 2, 2025
Pkgsrc changes:
 * Adapt patches, one of the patched files were restructured upstream.
 * Checksum changes.

Upstream changes:

Version 1.84.1 (2025-01-30)
==========================

- [Fix ICE 132920 in duplicate-crate diagnostics.]
  (rust-lang/rust#133304)
- [Fix errors for overlapping impls in incremental rebuilds.]
  (rust-lang/rust#133828)
- [Fix slow compilation related to the next-generation trait solver.]
  (rust-lang/rust#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.]
  (rust-lang/rust#135643)
- Fixes for building Rust from source:
  - [Only try to distribute `llvm-objcopy` if llvm tools are enabled.]
    (rust-lang/rust#134240)
  - [Add Profile Override for Non-Git Sources.]
    (rust-lang/rust#135433)
  - [Resolve symlinks of LLVM tool binaries before copying them.]
    (rust-lang/rust#135585)
  - [Make it possible to use ci-rustc on tarball sources.]
    (rust-lang/rust#135722)

Version 1.84.0 (2025-01-09)
==========================

Language
--------
- [Allow `#[deny]` inside `#[forbid]` as a no-op]
  (rust-lang/rust#121560)
- [Show a warning when `-Ctarget-feature` is used to toggle features
  that can lead to unsoundness due to ABI mismatches]
  (rust-lang/rust#129884)
- [Use the next-generation trait solver in coherence]
  (rust-lang/rust#130654)
- [Allow coercions to drop the principal of trait objects]
  (rust-lang/rust#131857)
- [Support `/` as the path separator for `include!()` in all cases on Windows]
  (rust-lang/rust#125205)
- [Taking a raw ref (`raw (const|mut)`) of a deref of a pointer
  (`*ptr`) is now safe]
  (rust-lang/rust#129248)
- [Stabilize s390x inline assembly]
  (rust-lang/rust#131258)
- [Stabilize Arm64EC inline assembly]
  (rust-lang/rust#131781)
- [Lint against creating pointers to immediately dropped temporaries]
  (rust-lang/rust#128985)
- [Execute drop glue when unwinding in an `extern "C"` function]
  (rust-lang/rust#129582)

Compiler
--------
- [Add `--print host-tuple` flag to print the host target tuple
  and affirm the "target tuple" terminology over "target triple"]
  (rust-lang/rust#125579)
- [Declaring functions with a calling convention not supported on
  the current target now triggers a hard error]
  (rust-lang/rust#129935)
- [Set up indirect access to external data for
  `loongarch64-unknown-linux-{musl,ohos}`]
  (rust-lang/rust#131583)
- [Enable XRay instrumentation for LoongArch Linux targets]
  (rust-lang/rust#131818)
- [Extend the `unexpected_cfgs` lint to also warn in external macros]
  (rust-lang/rust#132577)
- [Stabilize WebAssembly `multivalue`, `reference-types`, and
  `tail-call` target features]
  (rust-lang/rust#131080)
- [Added Tier 2 support for the `wasm32v1-none` target]
  (rust-lang/rust#131487)

Libraries
---------
- [Implement `From<&mut {slice}>` for `Box/Rc/Arc<{slice}>`]
  (rust-lang/rust#129329)
- [Move `<float>::copysign`, `<float>::abs`, `<float>::signum` to `core`]
  (rust-lang/rust#131304)
- [Add `LowerExp` and `UpperExp` implementations to `NonZero`]
  (rust-lang/rust#131377)
- [Implement `FromStr` for `CString` and `TryFrom<CString>` for `String`]
  (rust-lang/rust#130608)
- [`std::os::darwin` has been made public]
  (rust-lang/rust#130635)

Stabilized APIs
---------------

- [`Ipv6Addr::is_unique_local`]
  (https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local)
- [`Ipv6Addr::is_unicast_link_local`]
  (https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local)
- [`core::ptr::with_exposed_provenance`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html)
- [`core::ptr::with_exposed_provenance_mut`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html)
- [`<ptr>::addr`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr)
- [`<ptr>::expose_provenance`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance)
- [`<ptr>::with_addr`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr)
- [`<ptr>::map_addr`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr)
- [`<int>::isqrt`]
  (https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt)
- [`<int>::checked_isqrt`]
  (https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt)
- [`<uint>::isqrt`]
  (https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt)
- [`NonZero::isqrt`]
  (https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt)
- [`core::ptr::without_provenance`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html)
- [`core::ptr::without_provenance_mut`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html)
- [`core::ptr::dangling`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html)
- [`core::ptr::dangling_mut`]
  (https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html)

These APIs are now stable in const contexts

- [`AtomicBool::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr)
- [`AtomicPtr::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr)
- [`AtomicU8::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr)
- [`AtomicU16::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr)
- [`AtomicU32::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr)
- [`AtomicU64::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr)
- [`AtomicUsize::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr)
- [`AtomicI8::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr)
- [`AtomicI16::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr)
- [`AtomicI32::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr)
- [`AtomicI64::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr)
- [`AtomicIsize::from_ptr`]
  (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr)
- [`<ptr>::is_null`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1)
- [`<ptr>::as_ref`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1)
- [`<ptr>::as_mut`]
  (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut)
- [`Pin::new`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new)
- [`Pin::new_unchecked`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked)
- [`Pin::get_ref`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref)
- [`Pin::into_ref`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref)
- [`Pin::get_mut`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut)
- [`Pin::get_unchecked_mut`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut)
- [`Pin::static_ref`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref)
- [`Pin::static_mut`]
  (https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut)

Cargo
-----
- [Stabilize MSRV-aware resolver config]
  (rust-lang/cargo#14639)
- [Stabilize resolver v3]
  (rust-lang/cargo#14754)

Rustdoc
-------
- [rustdoc-search: improve type-driven search]
  (rust-lang/rust#127589)

Compatibility Notes
-------------------
- [Enable by default the `LSX` target feature for LoongArch Linux targets]
  (rust-lang/rust#132140)
- [The unstable `-Zprofile` flag ("gcov-style" coverage instrumentation)
  has been removed.](rust-lang/rust#131829)
  This does not affect the stable flags for coverage instrumentation
  (`-Cinstrument-coverage`) and profile-guided optimization
  (`-Cprofile-generate`, `-Cprofile-use`), which are unrelated and
  remain available.
- Support for the target named `wasm32-wasi` has been removed as
  the target is now named `wasm32-wasip1`. This completes the [transition]
  (rust-lang/compiler-team#607)
  [plan](rust-lang/compiler-team#695) for
  this target following [the introduction of `wasm32-wasip1`]
  (rust-lang/rust#120468) in Rust 1.78.
  Compiler warnings on [use of `wasm32-wasi`]
  (rust-lang/rust#126662)
  introduced in Rust 1.81 are now gone as well as the target is
  removed.
- [The syntax `&pin (mut|const) T` is now parsed as a type which
  in theory could affect macro expansion results in some edge cases]
  (rust-lang/rust#130635 (comment))
- [Legacy syntax for calling `std::arch` functions is no longer
  permitted to declare items or bodies (such as closures, inline
  consts, or async blocks).]
  (rust-lang/rust#130443 (comment))
- The `wasm32-unknown-emscripten` target's binary release of the
  standard library is now [built with the latest emsdk 3.1.68]
  (rust-lang/rust#131533), which fixes an
  ABI-incompatibility with Emscripten >= 3.1.42. If you are locally
  using a version of emsdk with an incompatible ABI (e.g. before
  3.1.42 or a future one), you should build your code with `-Zbuild-std`
  to ensure that `std` uses the correct ABI.
- [Declaring functions with a calling convention not supported on
  the current target now triggers a hard error]
  (rust-lang/rust#129935)
- [The next-generation trait solver is now enabled for coherence,
  fixing multiple soundness issues]
  (rust-lang/rust#130654)
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 4, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | patch | `1.84.0` -> `1.84.1` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>rust-lang/rust (rust)</summary>

### [`v1.84.1`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1841-2025-01-30)

[Compare Source](rust-lang/rust@1.84.0...1.84.1)

\==========================

<a id="1.84.1"></a>

-   [Fix ICE 132920 in duplicate-crate diagnostics.](rust-lang/rust#133304)
-   [Fix errors for overlapping impls in incremental rebuilds.](rust-lang/rust#133828)
-   [Fix slow compilation related to the next-generation trait solver.](rust-lang/rust#135618)
-   [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](rust-lang/rust#135643)
-   Fixes for building Rust from source:
    -   [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](rust-lang/rust#134240)
    -   [Add Profile Override for Non-Git Sources.](rust-lang/rust#135433)
    -   [Resolve symlinks of LLVM tool binaries before copying them.](rust-lang/rust#135585)
    -   [Make it possible to use ci-rustc on tarball sources.](rust-lang/rust#135722)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. stable-accepted Accepted for backporting to the compiler in the stable channel. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants