Skip to content

build: libm 0.2.12 cannot compile without edition 2024 support #883

@MrCroxx

Description

@MrCroxx

When building project in edition 2021 with libm 0.2.12, this compile error pops up:

> cat Cargo.toml
[package]
name = "t"
version = "0.1.0"
edition = "2021"

[dependencies]
libm = "0.2.12"%
> cargo +nightly-2024-08-30 check
error: failed to download `libm v0.2.12`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `/home/mrcroxx/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libm-0.2.12/Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.82.0-nightly (8f40fc59f 2024-08-21)).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

I checked the downloaded libm Cargo.toml:

# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.63"
name = "libm"
version = "0.2.12"
authors = ["Jorge Aparicio <[email protected]>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "libm in pure Rust"
documentation = "https://docs.rs/libm"
readme = "README.md"
keywords = [
    "libm",
    "math",
]
categories = ["no-std"]
license = "MIT"
repository = "https://github.com/rust-lang/compiler-builtins"
resolver = "3"

[features]
arch = []
default = ["arch"]
force-soft-floats = []
unstable = [
    "unstable-intrinsics",
    "unstable-float",
]
unstable-float = []
unstable-intrinsics = []
unstable-public-internals = []

[lib]
name = "libm"
path = "src/lib.rs"

[dev-dependencies.no-panic]
version = "0.1.35"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("compiler-builtins"))']

It brings the resolver = "3" from the workspace, which breaks the compilation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions