Skip to content

Stack overflow if dev dependency has links #8966

Closed
@dtolnay

Description

@dtolnay

Minimal repro:

# Cargo.toml

[package]
name = "repro"
version = "0.0.0"
links = "repro"

[dev-dependencies]
dep = { path = "dep" }
// src/lib.rs (empty)
// build.rs

fn main() {}
# dep/Cargo.toml

[package]
name = "dep"
version = "0.0.0"
links = "dep"

[dependencies]
repro = { path = ".." }
// dep/src/lib.rs (empty)
// dep/build.rs

fn main() {}

$ cargo check --tests

thread 'main' has overflowed its stack
fatal runtime error: stack overflow
Aborted (core dumped)

This crashes quite early on in Cargo. A target directory isn't even created.

This is a regression introduced in whatever Cargo shipped with Rust 1.28.0. Earlier toolchains build this successfully.

$ cargo +1.27.0 check --tests
   Compiling repro v0.0.0 (file:///git/repro)
   Compiling dep v0.0.0 (file:///git/repro/dep)
    Finished dev [unoptimized + debuginfo] target(s) in 0.19s

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions