-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
A-driverArea: rustc_driver that ties everything together into the `rustc` compilerArea: rustc_driver that ties everything together into the `rustc` compilerA-linkageArea: linking into static, shared libraries and binariesArea: linking into static, shared libraries and binariesC-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.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
For Debian we need to keep track of static libs linked into a final binary, for copyright purposes.
It seems that src/librustc_codegen_llvm/back/link.rs
performs the actual linking and search of paths, and it refers to a --print=native-static-libs
option but this doesn't seem to work.
For example when I link to the system libbacktrace and then build this with RUSTFLAGS="--print=native-static-libs" cargo build --verbose --verbose --verbose
I can see the build.rs output which is
cargo:rustc-link-lib=static=backtrace
cargo:rustc-link-search=native=/usr/lib/gcc/x86_64-linux-gnu/7/
But then I don't see any follow-up output that indicates that rustc actually found the file /usr/lib/gcc/x86_64-linux-gnu/7/libbacktrace.a
and this was what was actually linked into the final backtrace-sys.rlib
.
lu-zero
Metadata
Metadata
Assignees
Labels
A-driverArea: rustc_driver that ties everything together into the `rustc` compilerArea: rustc_driver that ties everything together into the `rustc` compilerA-linkageArea: linking into static, shared libraries and binariesArea: linking into static, shared libraries and binariesC-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.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.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
infinity0 commentedon Aug 12, 2018
@kornelski You were the one that originally implemented
--print=native-static-libs
in #43067 any comments?retep998 commentedon Aug 12, 2018
This is not what
--print=native-static-libs
was intended for, but rather it is for when your crate type isstaticlib
and it tells you what libraries you must link to when linking to thatstaticlib
.Certainly though there is room for a feature here to confirm which static libraries the
static
kind actually ended up pulling in. We can't do the same for thedylib
orstatic-nobundle
kinds though because in those cases it is the linker itself that is responsible for choosing what to link to.pnkfelix commentedon Mar 6, 2023
(deleted comment that had missed the point of what the original issue filer was concerned about, and thus was forking the discussion into the wrong direction. My comment has now been refiled as #108825.)
#![no_std]
staticlib #108825