-
-
Notifications
You must be signed in to change notification settings - Fork 17.3k
Linking issue with Rust 1.37.0 #64340
Copy link
Copy link
Closed
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.P-highHigh priorityHigh priorityT-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.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Description
Activity
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.P-highHigh priorityHigh priorityT-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.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
See build log.
It looks like name mangling doesn't work correctly when linking with a dynamic library which is also depends on
libstd.The application structure is the following:
dylibcratejava_bindings, containing 400+ dependencies and is dynamically linked tolibstd.dylib.exonum-javabinary application, depends onjava_bindingsand is dynamically linked tolibstd.dylib.The compilation works well on Rust 1.36.0, but doesn't work on 1.37.0 and nightly versions (such as
rustc 1.39.0-nightly (c6e9c76c5 2019-09-04)).To reproduce:
git clone https://github.com/exonum/exonum-java-binding cd exonum-java-binding/exonum-java-binding/core/rust/exonum-java rustup default nightly cargo buildSorry for such heavy project, couldn't reproduce on an easier example.