-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
I am developing a bootloader and writing integration tests for it.
The project structure roughly looks like this:
├── Cargo.lock
├── Cargo.toml
├── bootloader
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ └── main.rs
├── rust-toolchain.toml
└── tests
├── Cargo.toml
└── src
└── lib.rs
(There is more code obviously, I tried to create a minimal example.)
The bootloader crate has the following dependencies:
[dependencies]
serde = { version = "1.0", default-features = false, features = ["derive"] }
[build-dependencies]
url = "2.5"(In reality, there are more and url is pulled in by built, but to keep it brief, that's enough.)
The tests depend on the bootloader crate:
[dependencies]
bootloader = { path = "../bootloader", artifact = "bin", target = "i686-unknown-uefi" }(For this to work, .config/cargo.toml contains [unstable] bindeps = true.)
This has worked for quite some time and it works for url 2.5.6:
cargo build --target=i686-unknown-uefi -p bootloader
cargo test -p testsThese are the full dependencies for this minimal example:
$ cargo tree --edges features
bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
└── serde feature "derive"
├── serde v1.0.228
│ ├── serde_core feature "result"
│ │ └── serde_core v1.0.228
│ └── serde_derive feature "default"
│ └── serde_derive v1.0.228 (proc-macro)
│ ├── proc-macro2 feature "proc-macro"
│ │ └── proc-macro2 v1.0.103
│ │ └── unicode-ident feature "default"
│ │ └── unicode-ident v1.0.20
│ ├── quote feature "proc-macro"
│ │ ├── quote v1.0.41
│ │ │ └── proc-macro2 v1.0.103 (*)
│ │ └── proc-macro2 feature "proc-macro" (*)
│ ├── syn feature "clone-impls"
│ │ └── syn v2.0.108
│ │ ├── proc-macro2 v1.0.103 (*)
│ │ ├── quote v1.0.41 (*)
│ │ └── unicode-ident feature "default" (*)
│ ├── syn feature "derive"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "parsing"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "printing"
│ │ └── syn v2.0.108 (*)
│ └── syn feature "proc-macro"
│ ├── syn v2.0.108 (*)
│ ├── proc-macro2 feature "proc-macro" (*)
│ └── quote feature "proc-macro" (*)
└── serde feature "serde_derive"
└── serde v1.0.228 (*)
[build-dependencies]
└── url feature "default"
├── url v2.5.6
│ ├── form_urlencoded feature "alloc"
│ │ ├── form_urlencoded v1.2.2
│ │ │ └── percent-encoding v2.3.2
│ │ └── percent-encoding feature "alloc"
│ │ └── percent-encoding v2.3.2
│ ├── percent-encoding feature "alloc" (*)
│ ├── idna feature "alloc"
│ │ └── idna v1.1.0
│ │ ├── idna_adapter feature "default"
│ │ │ └── idna_adapter v1.2.1
│ │ │ ├── icu_normalizer v2.1.1
│ │ │ │ ├── icu_collections v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default"
│ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ └── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ ├── quote feature "default"
│ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ └── quote feature "proc-macro" (*)
│ │ │ │ │ │ └── syn feature "default"
│ │ │ │ │ │ ├── syn v2.0.108 (*)
│ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ ├── potential_utf feature "zerovec"
│ │ │ │ │ │ └── potential_utf v0.1.4
│ │ │ │ │ │ └── zerovec v0.11.5
│ │ │ │ │ │ ├── yoke v0.8.1
│ │ │ │ │ │ │ ├── stable_deref_trait v1.2.1
│ │ │ │ │ │ │ ├── yoke-derive v0.8.1 (proc-macro)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "fold"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "default"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2
│ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "extra-traits"
│ │ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ │ │ │ └── syn feature "visit"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "proc-macro"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2 (*)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ │ │ ├── quote feature "proc-macro" (*)
│ │ │ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ │ │ └── zerofrom v0.1.6
│ │ │ │ │ │ │ └── zerofrom-derive v0.1.6 (proc-macro)
│ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "fold" (*)
│ │ │ │ │ │ │ └── synstructure feature "default" (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── zerovec-derive v0.11.2 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ └── syn feature "extra-traits" (*)
│ │ │ │ │ ├── zerovec feature "derive"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── zerovec feature "yoke"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── yoke feature "derive"
│ │ │ │ │ │ ├── yoke v0.8.1 (*)
│ │ │ │ │ │ ├── yoke feature "zerofrom"
│ │ │ │ │ │ │ └── yoke v0.8.1 (*)
│ │ │ │ │ │ └── zerofrom feature "derive"
│ │ │ │ │ │ └── zerofrom v0.1.6 (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── icu_normalizer_data v2.1.1
│ │ │ │ ├── icu_provider v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ ├── icu_locale_core v2.1.1
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── litemap v0.8.1
│ │ │ │ │ │ ├── tinystr v0.8.2
│ │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ ├── zerotrie v0.2.3
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── yoke feature "derive" (*)
│ │ │ │ │ ├── zerovec feature "derive" (*)
│ │ │ │ │ ├── yoke feature "derive" (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── smallvec v1.15.1
│ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ └── icu_properties v2.1.1
│ │ │ ├── icu_collections v2.1.1 (*)
│ │ │ ├── icu_properties_data v2.1.1
│ │ │ ├── icu_provider v2.1.1 (*)
│ │ │ ├── zerovec feature "derive" (*)
│ │ │ ├── zerovec feature "yoke" (*)
│ │ │ ├── icu_locale_core feature "zerovec"
│ │ │ │ ├── icu_locale_core v2.1.1 (*)
│ │ │ │ └── tinystr feature "zerovec"
│ │ │ │ └── tinystr v0.8.2 (*)
│ │ │ ├── zerotrie feature "yoke"
│ │ │ │ └── zerotrie v0.2.3 (*)
│ │ │ └── zerotrie feature "zerofrom"
│ │ │ └── zerotrie v0.2.3 (*)
│ │ ├── smallvec feature "const_generics"
│ │ │ └── smallvec v1.15.1
│ │ ├── smallvec feature "default"
│ │ │ └── smallvec v1.15.1
│ │ └── utf8_iter feature "default"
│ │ └── utf8_iter v1.0.4
│ └── idna feature "compiled_data"
│ ├── idna v1.1.0 (*)
│ └── idna_adapter feature "compiled_data"
│ ├── idna_adapter v1.2.1 (*)
│ ├── icu_normalizer feature "compiled_data"
│ │ ├── icu_normalizer v2.1.1 (*)
│ │ └── icu_provider feature "baked"
│ │ └── icu_provider v2.1.1 (*)
│ └── icu_properties feature "compiled_data"
│ ├── icu_properties v2.1.1 (*)
│ └── icu_provider feature "baked" (*)
└── url feature "std"
├── url v2.5.6 (*)
├── form_urlencoded feature "std"
│ ├── form_urlencoded v1.2.2 (*)
│ ├── form_urlencoded feature "alloc" (*)
│ └── percent-encoding feature "std"
│ ├── percent-encoding v2.3.2
│ └── percent-encoding feature "alloc" (*)
├── percent-encoding feature "std" (*)
└── idna feature "std"
├── idna v1.1.0 (*)
└── idna feature "alloc" (*)
bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
└── serde feature "derive"
├── serde v1.0.228
│ ├── serde_core feature "result"
│ │ └── serde_core v1.0.228
│ └── serde_derive feature "default"
│ └── serde_derive v1.0.228 (proc-macro)
│ ├── proc-macro2 feature "proc-macro"
│ │ └── proc-macro2 v1.0.103
│ │ └── unicode-ident feature "default"
│ │ └── unicode-ident v1.0.20
│ ├── quote feature "proc-macro"
│ │ ├── quote v1.0.41
│ │ │ └── proc-macro2 v1.0.103 (*)
│ │ └── proc-macro2 feature "proc-macro" (*)
│ ├── syn feature "clone-impls"
│ │ └── syn v2.0.108
│ │ ├── proc-macro2 v1.0.103 (*)
│ │ ├── quote v1.0.41 (*)
│ │ └── unicode-ident feature "default" (*)
│ ├── syn feature "derive"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "parsing"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "printing"
│ │ └── syn v2.0.108 (*)
│ └── syn feature "proc-macro"
│ ├── syn v2.0.108 (*)
│ ├── proc-macro2 feature "proc-macro" (*)
│ └── quote feature "proc-macro" (*)
└── serde feature "serde_derive"
└── serde v1.0.228 (*)
[build-dependencies]
└── url feature "default"
├── url v2.5.6
│ ├── form_urlencoded feature "alloc"
│ │ ├── form_urlencoded v1.2.2
│ │ │ └── percent-encoding v2.3.2
│ │ └── percent-encoding feature "alloc"
│ │ └── percent-encoding v2.3.2
│ ├── percent-encoding feature "alloc" (*)
│ ├── idna feature "alloc"
│ │ └── idna v1.1.0
│ │ ├── idna_adapter feature "default"
│ │ │ └── idna_adapter v1.2.1
│ │ │ ├── icu_normalizer v2.1.1
│ │ │ │ ├── icu_collections v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default"
│ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ └── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ ├── quote feature "default"
│ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ └── quote feature "proc-macro" (*)
│ │ │ │ │ │ └── syn feature "default"
│ │ │ │ │ │ ├── syn v2.0.108 (*)
│ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ ├── potential_utf feature "zerovec"
│ │ │ │ │ │ └── potential_utf v0.1.4
│ │ │ │ │ │ └── zerovec v0.11.5
│ │ │ │ │ │ ├── yoke v0.8.1
│ │ │ │ │ │ │ ├── stable_deref_trait v1.2.1
│ │ │ │ │ │ │ ├── yoke-derive v0.8.1 (proc-macro)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "fold"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "default"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2
│ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "extra-traits"
│ │ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ │ │ │ └── syn feature "visit"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "proc-macro"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2 (*)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ │ │ ├── quote feature "proc-macro" (*)
│ │ │ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ │ │ └── zerofrom v0.1.6
│ │ │ │ │ │ │ └── zerofrom-derive v0.1.6 (proc-macro)
│ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "fold" (*)
│ │ │ │ │ │ │ └── synstructure feature "default" (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── zerovec-derive v0.11.2 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ └── syn feature "extra-traits" (*)
│ │ │ │ │ ├── zerovec feature "derive"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── zerovec feature "yoke"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── yoke feature "derive"
│ │ │ │ │ │ ├── yoke v0.8.1 (*)
│ │ │ │ │ │ ├── yoke feature "zerofrom"
│ │ │ │ │ │ │ └── yoke v0.8.1 (*)
│ │ │ │ │ │ └── zerofrom feature "derive"
│ │ │ │ │ │ └── zerofrom v0.1.6 (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── icu_normalizer_data v2.1.1
│ │ │ │ ├── icu_provider v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ ├── icu_locale_core v2.1.1
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── litemap v0.8.1
│ │ │ │ │ │ ├── tinystr v0.8.2
│ │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ ├── zerotrie v0.2.3
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── yoke feature "derive" (*)
│ │ │ │ │ ├── zerovec feature "derive" (*)
│ │ │ │ │ ├── yoke feature "derive" (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── smallvec v1.15.1
│ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ └── icu_properties v2.1.1
│ │ │ ├── icu_collections v2.1.1 (*)
│ │ │ ├── icu_properties_data v2.1.1
│ │ │ ├── icu_provider v2.1.1 (*)
│ │ │ ├── zerovec feature "derive" (*)
│ │ │ ├── zerovec feature "yoke" (*)
│ │ │ ├── icu_locale_core feature "zerovec"
│ │ │ │ ├── icu_locale_core v2.1.1 (*)
│ │ │ │ └── tinystr feature "zerovec"
│ │ │ │ └── tinystr v0.8.2 (*)
│ │ │ ├── zerotrie feature "yoke"
│ │ │ │ └── zerotrie v0.2.3 (*)
│ │ │ └── zerotrie feature "zerofrom"
│ │ │ └── zerotrie v0.2.3 (*)
│ │ ├── smallvec feature "const_generics"
│ │ │ └── smallvec v1.15.1
│ │ ├── smallvec feature "default"
│ │ │ └── smallvec v1.15.1
│ │ └── utf8_iter feature "default"
│ │ └── utf8_iter v1.0.4
│ └── idna feature "compiled_data"
│ ├── idna v1.1.0 (*)
│ └── idna_adapter feature "compiled_data"
│ ├── idna_adapter v1.2.1 (*)
│ ├── icu_normalizer feature "compiled_data"
│ │ ├── icu_normalizer v2.1.1 (*)
│ │ └── icu_provider feature "baked"
│ │ └── icu_provider v2.1.1 (*)
│ └── icu_properties feature "compiled_data"
│ ├── icu_properties v2.1.1 (*)
│ └── icu_provider feature "baked" (*)
└── url feature "std"
├── url v2.5.6 (*)
├── form_urlencoded feature "std"
│ ├── form_urlencoded v1.2.2 (*)
│ ├── form_urlencoded feature "alloc" (*)
│ └── percent-encoding feature "std"
│ ├── percent-encoding v2.3.2
│ └── percent-encoding feature "alloc" (*)
├── percent-encoding feature "std" (*)
└── idna feature "std"
├── idna v1.1.0 (*)
└── idna feature "alloc" (*)
tests v0.1.0 (/home/ubuntu/dev/url-dep/tests)
└── bootloader feature "default"
└── bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader) (*)Recently, url 2.5.7 gained a dependency on serde. This should not be a problem, but it is:
$ cargo build --target=i686-unknown-uefi -p bootloader
Blocking waiting for file lock on build directory
Compiling serde_core v1.0.228
Compiling serde v1.0.228
Compiling url v2.5.7
Compiling bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.60s
$ cargo test -p tests
Compiling bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
error[E0152]: found duplicate lang item `panic_impl`
--> bootloader/src/main.rs:18:1
|
18 | / fn panic_handler(_info: &PanicInfo) -> ! {
19 | | loop {}
20 | | }
| |_^
|
= note: the lang item is first defined in crate `std` (which `serde` depends on)
= note: first definition in `std` loaded from /home/ubuntu/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/i686-unknown-uefi/lib/libstd-2689399c1fe40c87.rlib
= note: second definition in the local crate (`bootloader`)
For more information about this error, try `rustc --explain E0152`.
error: could not compile `bootloader` (bin "bootloader") due to 1 previous errorFull dependencies:
$ cargo tree --edges features
bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
└── serde feature "derive"
├── serde v1.0.228
│ ├── serde_core feature "result"
│ │ └── serde_core v1.0.228
│ └── serde_derive feature "default"
│ └── serde_derive v1.0.228 (proc-macro)
│ ├── proc-macro2 feature "proc-macro"
│ │ └── proc-macro2 v1.0.103
│ │ └── unicode-ident feature "default"
│ │ └── unicode-ident v1.0.20
│ ├── quote feature "proc-macro"
│ │ ├── quote v1.0.41
│ │ │ └── proc-macro2 v1.0.103 (*)
│ │ └── proc-macro2 feature "proc-macro" (*)
│ ├── syn feature "clone-impls"
│ │ └── syn v2.0.108
│ │ ├── proc-macro2 v1.0.103 (*)
│ │ ├── quote v1.0.41 (*)
│ │ └── unicode-ident feature "default" (*)
│ ├── syn feature "derive"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "parsing"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "printing"
│ │ └── syn v2.0.108 (*)
│ └── syn feature "proc-macro"
│ ├── syn v2.0.108 (*)
│ ├── proc-macro2 feature "proc-macro" (*)
│ └── quote feature "proc-macro" (*)
└── serde feature "serde_derive"
└── serde v1.0.228 (*)
[build-dependencies]
└── url feature "default"
├── url v2.5.7
│ ├── form_urlencoded feature "alloc"
│ │ ├── form_urlencoded v1.2.2
│ │ │ └── percent-encoding v2.3.2
│ │ └── percent-encoding feature "alloc"
│ │ └── percent-encoding v2.3.2
│ ├── percent-encoding feature "alloc" (*)
│ ├── idna feature "alloc"
│ │ └── idna v1.1.0
│ │ ├── idna_adapter feature "default"
│ │ │ └── idna_adapter v1.2.1
│ │ │ ├── icu_normalizer v2.1.1
│ │ │ │ ├── icu_collections v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default"
│ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ └── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ ├── quote feature "default"
│ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ └── quote feature "proc-macro" (*)
│ │ │ │ │ │ └── syn feature "default"
│ │ │ │ │ │ ├── syn v2.0.108 (*)
│ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ ├── potential_utf feature "zerovec"
│ │ │ │ │ │ └── potential_utf v0.1.4
│ │ │ │ │ │ └── zerovec v0.11.5
│ │ │ │ │ │ ├── yoke v0.8.1
│ │ │ │ │ │ │ ├── stable_deref_trait v1.2.1
│ │ │ │ │ │ │ ├── yoke-derive v0.8.1 (proc-macro)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "fold"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "default"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2
│ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "extra-traits"
│ │ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ │ │ │ └── syn feature "visit"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "proc-macro"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2 (*)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ │ │ ├── quote feature "proc-macro" (*)
│ │ │ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ │ │ └── zerofrom v0.1.6
│ │ │ │ │ │ │ └── zerofrom-derive v0.1.6 (proc-macro)
│ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "fold" (*)
│ │ │ │ │ │ │ └── synstructure feature "default" (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── zerovec-derive v0.11.2 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ └── syn feature "extra-traits" (*)
│ │ │ │ │ ├── zerovec feature "derive"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── zerovec feature "yoke"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── yoke feature "derive"
│ │ │ │ │ │ ├── yoke v0.8.1 (*)
│ │ │ │ │ │ ├── yoke feature "zerofrom"
│ │ │ │ │ │ │ └── yoke v0.8.1 (*)
│ │ │ │ │ │ └── zerofrom feature "derive"
│ │ │ │ │ │ └── zerofrom v0.1.6 (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── icu_normalizer_data v2.1.1
│ │ │ │ ├── icu_provider v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ ├── icu_locale_core v2.1.1
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── litemap v0.8.1
│ │ │ │ │ │ ├── tinystr v0.8.2
│ │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ ├── zerotrie v0.2.3
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── yoke feature "derive" (*)
│ │ │ │ │ ├── zerovec feature "derive" (*)
│ │ │ │ │ ├── yoke feature "derive" (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── smallvec v1.15.1
│ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ └── icu_properties v2.1.1
│ │ │ ├── icu_collections v2.1.1 (*)
│ │ │ ├── icu_properties_data v2.1.1
│ │ │ ├── icu_provider v2.1.1 (*)
│ │ │ ├── zerovec feature "derive" (*)
│ │ │ ├── zerovec feature "yoke" (*)
│ │ │ ├── icu_locale_core feature "zerovec"
│ │ │ │ ├── icu_locale_core v2.1.1 (*)
│ │ │ │ └── tinystr feature "zerovec"
│ │ │ │ └── tinystr v0.8.2 (*)
│ │ │ ├── zerotrie feature "yoke"
│ │ │ │ └── zerotrie v0.2.3 (*)
│ │ │ └── zerotrie feature "zerofrom"
│ │ │ └── zerotrie v0.2.3 (*)
│ │ ├── smallvec feature "const_generics"
│ │ │ └── smallvec v1.15.1
│ │ ├── smallvec feature "default"
│ │ │ └── smallvec v1.15.1
│ │ └── utf8_iter feature "default"
│ │ └── utf8_iter v1.0.4
│ ├── idna feature "compiled_data"
│ │ ├── idna v1.1.0 (*)
│ │ └── idna_adapter feature "compiled_data"
│ │ ├── idna_adapter v1.2.1 (*)
│ │ ├── icu_normalizer feature "compiled_data"
│ │ │ ├── icu_normalizer v2.1.1 (*)
│ │ │ └── icu_provider feature "baked"
│ │ │ └── icu_provider v2.1.1 (*)
│ │ └── icu_properties feature "compiled_data"
│ │ ├── icu_properties v2.1.1 (*)
│ │ └── icu_provider feature "baked" (*)
│ └── serde feature "derive"
│ ├── serde v1.0.228
│ │ ├── serde_derive feature "default" (*)
│ │ └── serde_core feature "result"
│ │ └── serde_core v1.0.228
│ └── serde feature "serde_derive"
│ └── serde v1.0.228 (*)
└── url feature "std"
├── url v2.5.7 (*)
├── url feature "serde"
│ └── url v2.5.7 (*)
├── form_urlencoded feature "std"
│ ├── form_urlencoded v1.2.2 (*)
│ ├── form_urlencoded feature "alloc" (*)
│ └── percent-encoding feature "std"
│ ├── percent-encoding v2.3.2
│ └── percent-encoding feature "alloc" (*)
├── percent-encoding feature "std" (*)
├── idna feature "std"
│ ├── idna v1.1.0 (*)
│ └── idna feature "alloc" (*)
└── serde feature "std"
├── serde v1.0.228 (*)
└── serde_core feature "std"
└── serde_core v1.0.228
bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader)
└── serde feature "derive"
├── serde v1.0.228
│ ├── serde_core feature "result"
│ │ └── serde_core v1.0.228
│ └── serde_derive feature "default"
│ └── serde_derive v1.0.228 (proc-macro)
│ ├── proc-macro2 feature "proc-macro"
│ │ └── proc-macro2 v1.0.103
│ │ └── unicode-ident feature "default"
│ │ └── unicode-ident v1.0.20
│ ├── quote feature "proc-macro"
│ │ ├── quote v1.0.41
│ │ │ └── proc-macro2 v1.0.103 (*)
│ │ └── proc-macro2 feature "proc-macro" (*)
│ ├── syn feature "clone-impls"
│ │ └── syn v2.0.108
│ │ ├── proc-macro2 v1.0.103 (*)
│ │ ├── quote v1.0.41 (*)
│ │ └── unicode-ident feature "default" (*)
│ ├── syn feature "derive"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "parsing"
│ │ └── syn v2.0.108 (*)
│ ├── syn feature "printing"
│ │ └── syn v2.0.108 (*)
│ └── syn feature "proc-macro"
│ ├── syn v2.0.108 (*)
│ ├── proc-macro2 feature "proc-macro" (*)
│ └── quote feature "proc-macro" (*)
└── serde feature "serde_derive"
└── serde v1.0.228 (*)
[build-dependencies]
└── url feature "default"
├── url v2.5.7
│ ├── serde feature "derive" (*)
│ ├── form_urlencoded feature "alloc"
│ │ ├── form_urlencoded v1.2.2
│ │ │ └── percent-encoding v2.3.2
│ │ └── percent-encoding feature "alloc"
│ │ └── percent-encoding v2.3.2
│ ├── percent-encoding feature "alloc" (*)
│ ├── idna feature "alloc"
│ │ └── idna v1.1.0
│ │ ├── idna_adapter feature "default"
│ │ │ └── idna_adapter v1.2.1
│ │ │ ├── icu_normalizer v2.1.1
│ │ │ │ ├── icu_collections v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default"
│ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ └── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ ├── quote feature "default"
│ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ └── quote feature "proc-macro" (*)
│ │ │ │ │ │ └── syn feature "default"
│ │ │ │ │ │ ├── syn v2.0.108 (*)
│ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ ├── potential_utf feature "zerovec"
│ │ │ │ │ │ └── potential_utf v0.1.4
│ │ │ │ │ │ └── zerovec v0.11.5
│ │ │ │ │ │ ├── yoke v0.8.1
│ │ │ │ │ │ │ ├── stable_deref_trait v1.2.1
│ │ │ │ │ │ │ ├── yoke-derive v0.8.1 (proc-macro)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ │ ├── syn feature "fold"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "default"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2
│ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.103 (*)
│ │ │ │ │ │ │ │ │ ├── quote v1.0.41 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "clone-impls" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "derive" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "extra-traits"
│ │ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "parsing" (*)
│ │ │ │ │ │ │ │ │ ├── syn feature "printing" (*)
│ │ │ │ │ │ │ │ │ └── syn feature "visit"
│ │ │ │ │ │ │ │ │ └── syn v2.0.108 (*)
│ │ │ │ │ │ │ │ └── synstructure feature "proc-macro"
│ │ │ │ │ │ │ │ ├── synstructure v0.13.2 (*)
│ │ │ │ │ │ │ │ ├── proc-macro2 feature "proc-macro" (*)
│ │ │ │ │ │ │ │ ├── quote feature "proc-macro" (*)
│ │ │ │ │ │ │ │ └── syn feature "proc-macro" (*)
│ │ │ │ │ │ │ └── zerofrom v0.1.6
│ │ │ │ │ │ │ └── zerofrom-derive v0.1.6 (proc-macro)
│ │ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ │ ├── syn feature "fold" (*)
│ │ │ │ │ │ │ └── synstructure feature "default" (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── zerovec-derive v0.11.2 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 feature "default" (*)
│ │ │ │ │ │ ├── quote feature "default" (*)
│ │ │ │ │ │ ├── syn feature "default" (*)
│ │ │ │ │ │ └── syn feature "extra-traits" (*)
│ │ │ │ │ ├── zerovec feature "derive"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── zerovec feature "yoke"
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── yoke feature "derive"
│ │ │ │ │ │ ├── yoke v0.8.1 (*)
│ │ │ │ │ │ ├── yoke feature "zerofrom"
│ │ │ │ │ │ │ └── yoke v0.8.1 (*)
│ │ │ │ │ │ └── zerofrom feature "derive"
│ │ │ │ │ │ └── zerofrom v0.1.6 (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── icu_normalizer_data v2.1.1
│ │ │ │ ├── icu_provider v2.1.1
│ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ ├── icu_locale_core v2.1.1
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── litemap v0.8.1
│ │ │ │ │ │ ├── tinystr v0.8.2
│ │ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ │ │ ├── writeable v0.6.2
│ │ │ │ │ ├── zerotrie v0.2.3
│ │ │ │ │ │ ├── displaydoc v0.2.5 (proc-macro) (*)
│ │ │ │ │ │ ├── zerofrom v0.1.6 (*)
│ │ │ │ │ │ └── yoke feature "derive" (*)
│ │ │ │ │ ├── zerovec feature "derive" (*)
│ │ │ │ │ ├── yoke feature "derive" (*)
│ │ │ │ │ └── zerofrom feature "derive" (*)
│ │ │ │ ├── smallvec v1.15.1
│ │ │ │ └── zerovec v0.11.5 (*)
│ │ │ └── icu_properties v2.1.1
│ │ │ ├── icu_collections v2.1.1 (*)
│ │ │ ├── icu_properties_data v2.1.1
│ │ │ ├── icu_provider v2.1.1 (*)
│ │ │ ├── zerovec feature "derive" (*)
│ │ │ ├── zerovec feature "yoke" (*)
│ │ │ ├── icu_locale_core feature "zerovec"
│ │ │ │ ├── icu_locale_core v2.1.1 (*)
│ │ │ │ └── tinystr feature "zerovec"
│ │ │ │ └── tinystr v0.8.2 (*)
│ │ │ ├── zerotrie feature "yoke"
│ │ │ │ └── zerotrie v0.2.3 (*)
│ │ │ └── zerotrie feature "zerofrom"
│ │ │ └── zerotrie v0.2.3 (*)
│ │ ├── smallvec feature "const_generics"
│ │ │ └── smallvec v1.15.1
│ │ ├── smallvec feature "default"
│ │ │ └── smallvec v1.15.1
│ │ └── utf8_iter feature "default"
│ │ └── utf8_iter v1.0.4
│ └── idna feature "compiled_data"
│ ├── idna v1.1.0 (*)
│ └── idna_adapter feature "compiled_data"
│ ├── idna_adapter v1.2.1 (*)
│ ├── icu_normalizer feature "compiled_data"
│ │ ├── icu_normalizer v2.1.1 (*)
│ │ └── icu_provider feature "baked"
│ │ └── icu_provider v2.1.1 (*)
│ └── icu_properties feature "compiled_data"
│ ├── icu_properties v2.1.1 (*)
│ └── icu_provider feature "baked" (*)
└── url feature "std"
├── url v2.5.7 (*)
├── serde feature "std"
│ ├── serde v1.0.228 (*)
│ └── serde_core feature "std"
│ └── serde_core v1.0.228
├── url feature "serde"
│ └── url v2.5.7 (*)
├── form_urlencoded feature "std"
│ ├── form_urlencoded v1.2.2 (*)
│ ├── form_urlencoded feature "alloc" (*)
│ └── percent-encoding feature "std"
│ ├── percent-encoding v2.3.2
│ └── percent-encoding feature "alloc" (*)
├── percent-encoding feature "std" (*)
└── idna feature "std"
├── idna v1.1.0 (*)
└── idna feature "alloc" (*)
tests v0.1.0 (/home/ubuntu/dev/url-dep/tests)
└── bootloader feature "default"
└── bootloader v0.1.0 (/home/ubuntu/dev/url-dep/bootloader) (*)What I think happened here, is that the compiler confused the features of the serde that is a build-dependency with the serde that is a runtime dependency. This only happens when compiling as a bin-artifact dependency.
Meta
rustc --version --verbose:
rustc 1.93.0-nightly (b15a874aa 2025-11-02)
binary: rustc
commit-hash: b15a874aafe7eab9ea3ac2c1d59c7b03e1425027
commit-date: 2025-11-02
host: x86_64-unknown-linux-gnu
release: 1.93.0-nightly
LLVM version: 21.1.3
But this is not new in this version. The error is the same for rustc 1.83.0-nightly (fb4aebddd 2024-09-30).
(There is no backtrace for RUST_BACKTRACE=1.)