emscripten: Use the latest emsdk 3.1.68 by workingjubilee · Pull Request #131533 · rust-lang/rust

@workingjubilee

This should fix our precompiled std being unsound in `std::fs` code.

@rustbot rustbot added A-testsuite

Area: The testsuite used to check the correctness of rustc

S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-infra

Relevant to the infrastructure team, which will review and decide on the PR/issue.

labels

Oct 11, 2024

kleisauke added a commit to kleisauke/libc that referenced this pull request

Oct 11, 2024

@kleisauke

@workingjubilee workingjubilee added the O-emscripten

Target: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL!

label

Oct 13, 2024

@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-review

Status: Awaiting review from the assignee but also interested parties.

labels

Oct 13, 2024

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Oct 13, 2024
…ersion, r=Kobzol

emscripten: Use the latest emsdk 3.1.68

This should fix our precompiled std being unsound in `std::fs` code.

Should resolve rust-lang#131467 I hope.

bors added a commit to rust-lang-ci/rust that referenced this pull request

Oct 14, 2024

bors added a commit to rust-lang-ci/rust that referenced this pull request

Oct 14, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#128967 (std::fs::get_path freebsd update.)
 - rust-lang#130629 (core/net: add Ipv[46]Addr::from_octets, Ipv6Addr::from_segments.)
 - rust-lang#131274 (library: Const-stabilize `MaybeUninit::assume_init_mut`)
 - rust-lang#131473 (compiler: `{TyAnd,}Layout` comes home)
 - rust-lang#131533 (emscripten: Use the latest emsdk 3.1.68)
 - rust-lang#131593 (miri: avoid cloning AllocExtra)
 - rust-lang#131616 (merge const_ipv4 / const_ipv6 feature gate into 'ip' feature gate)
 - rust-lang#131660 (Also use outermost const-anon for impl items in `non_local_defs` lint)

r? `@ghost`
`@rustbot` modify labels: rollup

bors added a commit to rust-lang-ci/rust that referenced this pull request

Oct 14, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#128967 (std::fs::get_path freebsd update.)
 - rust-lang#130629 (core/net: add Ipv[46]Addr::from_octets, Ipv6Addr::from_segments.)
 - rust-lang#131274 (library: Const-stabilize `MaybeUninit::assume_init_mut`)
 - rust-lang#131473 (compiler: `{TyAnd,}Layout` comes home)
 - rust-lang#131533 (emscripten: Use the latest emsdk 3.1.68)
 - rust-lang#131593 (miri: avoid cloning AllocExtra)
 - rust-lang#131616 (merge const_ipv4 / const_ipv6 feature gate into 'ip' feature gate)
 - rust-lang#131660 (Also use outermost const-anon for impl items in `non_local_defs` lint)

r? `@ghost`
`@rustbot` modify labels: rollup

bors added a commit to rust-lang-ci/rust that referenced this pull request

Oct 14, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#128967 (std::fs::get_path freebsd update.)
 - rust-lang#130629 (core/net: add Ipv[46]Addr::from_octets, Ipv6Addr::from_segments.)
 - rust-lang#131274 (library: Const-stabilize `MaybeUninit::assume_init_mut`)
 - rust-lang#131473 (compiler: `{TyAnd,}Layout` comes home)
 - rust-lang#131533 (emscripten: Use the latest emsdk 3.1.68)
 - rust-lang#131593 (miri: avoid cloning AllocExtra)
 - rust-lang#131616 (merge const_ipv4 / const_ipv6 feature gate into 'ip' feature gate)
 - rust-lang#131660 (Also use outermost const-anon for impl items in `non_local_defs` lint)

r? `@ghost`
`@rustbot` modify labels: rollup

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Oct 14, 2024
Rollup merge of rust-lang#131533 - workingjubilee:update-emscripten-version, r=Kobzol

emscripten: Use the latest emsdk 3.1.68

This should fix our precompiled std being unsound in `std::fs` code.

Should resolve rust-lang#131467 I hope.

@Urgau Urgau added the relnotes

Marks issues that should be documented in the release notes of the next release.

label

Oct 14, 2024

rgonzalezfluendo added a commit to rgonzalezfluendo/meson that referenced this pull request

Dec 31, 2024
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an
issue with Emscripten dynamic linking and libc [2]. After that no
native-static-libs in the output if running:

```
rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null
```

[1] rust-lang/rust#131533
[2] rust-lang/libc#4002

jhpratt added a commit to jhpratt/rust that referenced this pull request

Jan 12, 2025
…mulacrum

Remove emsdk version update from 1.84.0 relnotes

See [this comment](rust-lang#131467 (comment)). The reproducer in that comment does indeed show that rustup's `rust-std` component is still compiled with the old emscripten ABI because libc's config flag `emscripten_new_stat_abi` is not set.

rust-lang#131533 presumably had no effect because the wrong CI file was modified. So nothing has changed since 1.83.0. The PR author (workingjubilee) is currently on vacation.
Also the issue rust-lang#131467 should be reopened.

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Jan 12, 2025
…mulacrum

Remove emsdk version update from 1.84.0 relnotes

See [this comment](rust-lang#131467 (comment)). The reproducer in that comment does indeed show that rustup's `rust-std` component is still compiled with the old emscripten ABI because libc's config flag `emscripten_new_stat_abi` is not set.

rust-lang#131533 presumably had no effect because the wrong CI file was modified. So nothing has changed since 1.83.0. The PR author (workingjubilee) is currently on vacation.
Also the issue rust-lang#131467 should be reopened.

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Jan 12, 2025
Rollup merge of rust-lang#135266 - kadiwa4:no_emsdk_update, r=Mark-Simulacrum

Remove emsdk version update from 1.84.0 relnotes

See [this comment](rust-lang#131467 (comment)). The reproducer in that comment does indeed show that rustup's `rust-std` component is still compiled with the old emscripten ABI because libc's config flag `emscripten_new_stat_abi` is not set.

rust-lang#131533 presumably had no effect because the wrong CI file was modified. So nothing has changed since 1.83.0. The PR author (workingjubilee) is currently on vacation.
Also the issue rust-lang#131467 should be reopened.

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)

rgonzalezfluendo added a commit to rgonzalezfluendo/meson that referenced this pull request

Apr 16, 2025
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an
issue with Emscripten dynamic linking and libc [2]. After that no
native-static-libs in the output if running:

```
rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null
```

[1] rust-lang/rust#131533
[2] rust-lang/libc#4002

rgonzalezfluendo added a commit to rgonzalezfluendo/meson that referenced this pull request

Jun 20, 2025
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an
issue with Emscripten dynamic linking and libc [2]. After that no
native-static-libs in the output if running:

```
rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null
```

[1] rust-lang/rust#131533
[2] rust-lang/libc#4002

jpakkane pushed a commit to mesonbuild/meson that referenced this pull request

Aug 10, 2025
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an
issue with Emscripten dynamic linking and libc [2]. After that no
native-static-libs in the output if running:

```
rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null
```

[1] rust-lang/rust#131533
[2] rust-lang/libc#4002

kjmeagher pushed a commit to kjmeagher/meson that referenced this pull request

Jan 11, 2026
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an
issue with Emscripten dynamic linking and libc [2]. After that no
native-static-libs in the output if running:

```
rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null
```

[1] rust-lang/rust#131533
[2] rust-lang/libc#4002