-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
A-linkageArea: linking into static, shared libraries and binariesArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.Category: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.Call for participation: An issue has been fixed and does not reproduce, but no test has been added.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
undefined symbol: _ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hd0ba07f053fd4c7fE
My project structure:
parent
main.rs # binary, loads libchild.so via libloading
lib.rs # dylib, shared code
child
lib.rs # dylib, dynamically linked to libparent.so
This compiles fine, but fails to load libchild.so
when compiled on anything newer than 1.36.0. If the parent
library is made non-dylib, it works fine, however this is not a viable solution for my project as it causes libchild.so
to contain all the shared code, and my project has many libchild.so
-equivalent crates.
Demo case: https://github.com/GinjaNinja32/rust-issues/tree/undefined-symbol-core-fmt-debug (has 70 dependency crates, mostly indirect; I'm not sure exactly where it goes wrong or how to make it smaller)
Bisected to merge dbebcee, #59752.
rustc 1.39.0 (4560ea788 2019-11-04)
binary: rustc
commit-hash: 4560ea788cb760f0a34127156c78e2552949f734
commit-date: 2019-11-04
host: x86_64-unknown-linux-gnu
release: 1.39.0
LLVM version: 9.0
Metadata
Metadata
Assignees
Labels
A-linkageArea: linking into static, shared libraries and binariesArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.Category: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.Call for participation: An issue has been fixed and does not reproduce, but no test has been added.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.